[CentOS 6.x] APM컴파일 설치 방법 1. Apache설치
APM은 Apache, PHP, Mysql의 약자로 웹 기반 어플리케이션을 서비스 할 수 있는 플랫폼을 구축하는 것입니다.
이 3개는 보통 24시간 운용되는 리눅스 서버에서 자주 사용됩니다.
문제는 리눅스 배포판이 하도많고 그에 따라 맞게 컴파일된 패키지를 배포(distribute)해줘야 하는데
각각 사용하는 커뮤니티가 달라 모든 배포판의 판올림이 동일하게 적용되지는 않습니다.
이 때 필수적인것이 컴파일 설치이며, 컴파일 설치의 장점은 버전업(up-to-date) 뿐 아니라
자신이 운용하는 장비의 아키텍쳐에 가장 적합하게 컴파일링 되고 사용할 수 있다는 것입니다.
따라서 판올림이 잦고 제로데이같은 보안이슈가 많은 소프트웨어에서는 더더욱 신속하게 업데이트해야하고
속도적인 면에서도 빠르게 작용할 수 있습니다.
작성하는 글은
위의 글을 참조합니다.
0. 기존 패키지삭제
만약 기존에 httpd가 패키지로 설치가 되어있다면
$ rpm -qa | grep httpd $ rpm -qa | grep apache // 의 결과로 나온 녀석들을 $ rpm -e xxxxxx // xxxxxx에 넣어서 삭제해주세요
1. 의존성 패키지 및 라이브러리 설치
Apache를 컴파일 설치하기 위해서는 사전에 의존성 패키지를 설치해야합니다.
리스트는 아래와 같습니다.
apr 1.5.2 (https://apr.apache.org/)
apr-util 1.5.4 (https://apr.apache.org/)
pcre 8.38 (http://www.pcre.org/)
1) apr, apr-util
apr과 apr-util은 위의 apr.apache.org주소에서 모두 받을 수 있으며 사진에서처럼 Download버튼을 누르면 다운로드 받을 수 있는 페이지가 연결됩니다.
CentOS(Linux 커널)설치이므로 반드시 Unix Source로 받아야 하며 아키텍쳐에 맞게 컴파일 하므로 32bit, 64bit를 구분하지 않습니다.
mkdir로 작업할 임시폴더를 하나 생성하고 이동해주세요.
$ wget http://mirror.navercorp.com/apache//apr/apr-1.5.2.tar.gz $ wget http://mirror.navercorp.com/apache//apr/apr-util-1.5.4.tar.gz $ tar -xvzf apr-1.5.2.tar.gz $ tar -xvzf apr-util-1.5.4.tar.gz
하면 apr과 apr-util에 대한 폴더 2개가 생깁니다.
$ cd apr-1.5.2 // apr설치를위해 경로이동 $ ./configure $ make $ make install // 순서대로 작업이 끝날때마다 입력해주면 됩니다. $ cd .. // 상위 디렉터리로 이동 $ cd apr-util-1.5.4 // apr-util설치를위해 경로이동 $ ./configure --with-apr=/usr/local/apr // apr을 설치했고 의존성 설정을 위해 --with-apr 옵션을 주었습니다. $ make $ make install
이로써 2개의 설치가 끝났습니다.
만약 ./configure에서 no acceptable C compiler found in $PATH 과 같은 에러가 난다면
에러문장 그대로 C컴파일러를 찾지못해서(설치되어있지 않다고 판단) 발생하는 에러입니다.
해결법은 리눅스용 gnu c컴파일러를 설치해주면됩니다.
$ yum install gcc
2) pcre
pcre는 자체 ftp서버 또는 sourceforge의 미러 둘 중 한곳에서 받을 수 있으며
버전이 높다고 pcre2를 받으면 안되고 pcre를 받아야합니다.
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
https://sourceforge.net/projects/pcre/files/
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz $ tar -xvzf pcre-8.38.tar.gz $ cd pcre-8.38 $ ./configure --prefix=/usr/local/pcre $ make $ make install
error: Size of “void *” is less than size of “long” 발생시
$ vim configure . . . // vim내에서 아래를 찾습니다. ('/' 키가 검색입니다.) /ap_void_ptr_lt_long ap_void_ptr_lt_long=yes // 를 ap_void_ptr_lt_long=no // 로 모두 바꿔주세요
2. Apache 컴파일
이제 본격적으로 apache를 컴파일 합니다.
https://httpd.apache.org/download.cgi
다운로드는 위에서 받습니다. 다만 중요한 것은 apache 2.4는 CentOS 7 이상에서 호환되므로
CentOS 6.x를 사용하는 우리는 2.2.x버전을 설치하도록 합니다. 둘 다 다른 branch로 릴리즈되고 있으니 하위버전이라고만 생각하실필요는 없습니다.
$ wget http://apache.tt.co.kr//httpd/httpd-2.2.31.tar.gz $ cd httpd-2.2.31 $ ./configure --prefix=/usr/local/apache --enable-http --enable-info --enable-cgi --enable-so --with-pcre=/usr/local/pcre // 추후 컴파일설치한 apache에 대해 php와 mariadb를 연동해야 하므로 prefix의 경로는 수정하지 마세요 $ make $ make install
3. 기본설정
이제 /usr/local/apache 경로에 apache가 설치됐습니다.
기존 패키지로 설치했을 때는 service httpd start하면 실행이 됐으나 지금은 그렇지 않습니다.
“인식되지 않은 서비스” 로 표시됩니다.
데몬이 환경변수 폴더에 들어있지 않기 때문이죠
지금부터 자동시작을 위한 파일수정, 환경변수폴더에 옮기기, 자동시작설정을 하겠습니다.
$ vim /usr/local/apache/bin/apachectl // #!/bin/sh 바로 밑줄에 아래 구문을 삽입합니다. $ chkconfig: - 85 15 $ description: apache auto start // 이 두 줄을 넣어줘야 apachectl 바이너리를 chkconfig에 등록하여 // 시스템 부팅, 리부팅시 자동으로 데몬을 시작할 수 있도록 합니다. $ cp /usr/local/apache/bin/apachectl /etc/init.d/httpd // 혹은 /usr/local/apache/bin/httpd // 개인적으로 httpd말고 apachectl을 복사했으면 합니다. // 시스템 부팅시 자동시작 $ chkconfig --add httpd $ chkconfig --level 2345 httpd on
이제 httpd -v를 입력했을 때
$ httpd -v Server version: Apache/2.2.x (Unix) Server built : xxxx-xx-xx // 이런식으로 출력이 되면 정상적으로 설치가 됐고 서비스를 사용할 수 있다는 뜻입니다.
따라서 정상적으로 사용가능한 apache를 데몬으로 돌리면
$ service httpd start // 실패가 나면 설치과정에 문제가 발생했으므로 관련디렉터리를 삭제하고 // 처음부터 다시 진행합니다.
다음과 같이 프로세스 조회시 httpd 데몬이 발견됩니다.
자세히 보면 root로 1개, apache로 4개의 프로세스가 돌아가는데 이는 제가 추가로 설정해서 그런것이므로
( 프로세스를 fork하여 apache계정에게 권한을 상속합니다. )
2장에서는 root가 아닌 apache로 서비스를 돌릴 수 있도록 및 기본 보안설정등을 작업하겠습니다.
10개의 댓글