대외활동/UMC SERVER

1주차 챌린지 과제 : Ubuntu 20.04.4 LTS에 APM 소스, 수동 설치하기 (Apache)

Debin 2022. 3. 17.
반응형

이번 1주차 챌린지 과제는 우분투에 APM을 소스 설치하는 것입니다.

따라서 우분투에서 APM (Apache, PHP, MySQL)을 소스 설치하고 이에 대한 공부 기록을 남겨보겠습니다.

 

소스 설치(컴파일 설치)란 리눅스에서 소스를 컴파일하여 설치하는 것이다.

패키지 매니저와는 다르게 스스로 설치하고 버전도 관리해야 한다.

먼저 소스 설치 관례에 대해 알아보겠다.

 

  • /usr/local에 설치하는 것이 관례다.
  • 소스 파일을 내려 받으면 
  •  configure / make / make install의 3단계로 이루어짐.

이제 각각의 키워드에 대해 알아보겠다.

 

configure

configure는 내게 필요한 도구가 다 있는지, 라이브러리는 다 있는지 같은 것들을 체크해주고 빌드 환경을 만들어주는 스크립트다.

설치할 때 옵션을 주지 않으면 기본으로 /usr/local/bin 이나 /usr/local/lib 밑에 설치하는데,

이 디렉토리들은 관리자 권한이 없이는 접근할 수 없다. 이 경우에는 --prefix 옵션을 주어 설치 디렉토리를 바꿔야한다.

예를 들어 홈 디렉토리 밑에 package 이라는 디렉토리를 만들어 그 곳에 설치하려 한다면 아래와 같이 작성한다.

./configure --prefix=/home/oracle/package

이렇게 하면 컴파일 준비가 완료된다. 정리하면 소스파일에 대한 환경설정을 해주고 컴파일을 환경을 검사하는 명령어다.

 

make

make는 미리 정해진 스크립트를 따라 소스 코드를 컴파일해주는 도구다. configure를 마쳤다면 make를 쳐서 컴파일을 진행한다.

컴파일이란 소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정이다.

컴파일 에러가 나면 make clean을 사용해 청소하고 다시 make를 사용하면 된다.

 

make install

컴파일이 완료된 뒤 make install 을 치면 설치가 완료된다. build된 프로그램을 실행할 수 있게 파일들을 알맞은 위치에 복사를 해준다.

 

APACHE 설치

제일 처음 필수 패키지들을 설치한다.

먼저 필요한 패키지들을 설치한다.

$ sudo su
# apt-get install make
# apt-get install build-essential
# apt-get install gcc
# apt-get install --reinstall make
# apt-get install libexpat1-dev
# apt-get install g++ 
# apt-get install net-tools
# apt-get install curl

 

이제 소스 파일을 다운로드하고 압축을 해제하겠다.

$ sudo su
/usr/local# mkdir apache
1) apr-1.7.0
/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz

2) apr-util-1.6.1
/usr/local# wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz

3) pcre-8.43
/usr/local# wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz

4) apache-2.4.51
/usr/local# wget https://dlcdn.apache.org//httpd/httpd-2.4.51.tar.gz

압축해제

/usr/local# tar xvfz apr-1.7.0.tar.gz
/usr/local# tar xvfz apr-util-1.6.1.tar.gz
/usr/local# tar xvfz pcre-8.45.tar.gz
/usr/local# tar xvfz httpd-2.4.51.tar.gz
  • wget : 웹 서버로부터 소스 파일을 다운로드한다.
  • tar xvfz 
    • tar 은 묶음 파일을 만들거나 푸는 명령어다.
    • x는 동작이다. 묶음 파일을 푸는 동작이다.
    • v는 파일을 묶거나 푸는 과정을 보여준다.
    • f는 묶음 파일 명을 지정한다.
    • z는  tar+gzip의 약어다. gzip는 확장명 gz로 압축하거나 푼다.
  • APR: APR(아파치 포터블 런타임)는 아파치 HTTP 서버 2.x. 의 핵심이며 휴대용 라이브러리이다. 이런 APR은 고급 IO 기능(예:sendfile, epoll and OpenSSL 등)에 대한 접근을 포함하여 OS 수준의 기능 (난수 생성, 시스템 상태), 그리고 기본 프로세스 처리(공유 메모리, NT 파이프와 유닉스 소켓) 등 많은 용도로 사용되고 있다.
  • PCRE: PCRE( Perl Compatible Regular Expressions )는 펄 호환 정규 표현식으로서, 정규식 패턴 일치를 구현하는 함수의 집합이다. 요즘에는 Apache, PHP, KDE 등을 포함한 오프 소스 프로젝트에서 사용되고 있으며, 아파치 2.4 버전을 설치할 때는 pcre를 설치해야 한다.

 

apr 설치

/usr/local# cd apr-1.7.0
/usr/local/apr-1.7.0# ./configure --prefix=/usr/local/apr
/usr/local/apr-1.7.0# make
/usr/local/apr-1.7.0# make install

 

apr-util 설치

/usr/local# cd apr-util-1.6.1
/usr/local/apr-util-1.6.1# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
/usr/local/apr-util-1.6.1# make
/usr/local/apr-util-1.6.1# make install

 

pcre 설치

/usr/local# cd pcre-8.45
/usr/local/pcre-8.43# ./configure --prefix=/usr/local/pcre
/usr/local/pcre-8.43# make
/usr/local/pcre-8.43# make install

 

 

Apache 설치 (apache-2.4.51)

/usr/local# cd httpd-2.4.51
/usr/local/httpd-2.4.46# ./configure --prefix=/usr/local/apache2.4 \
--enable-module=so --enable-rewrite --enable-so \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre \
--enable-mods-shared=all

/usr/local/httpd-2.4.46# make
/usr/local/httpd-2.4.46# make install

 

Apache 실행

실행: httpd -k start, 종료: httpd -k stop

/usr/local# sudo apache2.4/bin/httpd -k start
/usr/local# ps -ef | grep httpd | grep -v grep
/usr/local# sudo netstat -anp | grep httpd
/usr/local# sudo curl http://127.0.0.1

아래 이미지를 보면 정상적으로 작동하는 것을 확인할 수 있다!!!

 

성공하고 막 만지다가 보지 못한 에러가 발생했다. 처음 느낀 감정은 갑자기...? 였다. 에러는 아래와 같다.

Error AH00558 : httpd : Could not reliably determine the server's fully qualified domain name, using 'Ip address'. Set the 'ServerName' directive globally to suppress this message.

 

읽으보면 서버 도메인이 신뢰가 없다는 내용이다. 이를 해결하려면 apache2.4/conf/httpd.conf에 들어가서 Servername을 설정해줘야한다. 아래 이미지 처럼 작성하자.

그러면 아래 이미지처럼 나온다!!! 또한 index.html을 업데이트 해보았다.

파일을 수정했는데 적용이 안되길래 당황했는데 파이어폭스 캐시가 문제였다. 캐시를 삭제하고 다시 시작하니 잘 적용되었다.

 

성공적으로 실습을 마쳤다. 다음 시간에는 MySQL 소스 설치를 진행하겠다.

 

 

참고 자료

https://yeni-days.tistory.com/2

https://positivemh.tistory.com/462

https://zetawiki.com/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%BB%B4%ED%8C%8C%EC%9D%BC_%EC%84%A4%EC%B9%98

https://zetawiki.com/wiki/CentOS_%EC%BB%B4%ED%8C%8C%EC%9D%BC_%EC%84%A4%EC%B9%98_%EC%A4%80%EB%B9%84

반응형

댓글