반응형

apache http server project를 yum이나 rpm 없이 compile을 통해서 install하는 방법을 공유합니다.


아파치를 컴파일 하기위해선 먼저 apr, apr-util, pcre가 설치되어 있어야 합니다.


그리고 pcre를 설치하기 위해선 expat-devel 이 설치되어 있어야합니다. 

(pcre는 정규식사용을 위한 라이브러리입니다.)


아파치 설치를 위해 역순으로 설치합니다.


1. expat-devel 설치는 yum을 통해서 설치합니다. ( 추후에 expat도 컴파일 설치하는 방법을 공유하도록 하겠습니다. )


yum install expat-devel





2. pcre 설치


다운로드 URL : http://www.pcre.org/

URL에 접속하면 아래 화면이 뜨는데, 빨간 박스 부분을 클릭합니다.



그러면, 아래 화면으로 넘어가는데 최신버전은 아래로 가도록 정렬됩니다.

2018년 2월 현재 pcre중에 최신버전인 pcre-8.41.tar.gz를 다운로드 받습니다.



다운받은 파일의 압축을 풉니다.

tar -xvzf pcre-8.41.tar.gz



압축을 푼 디렉토리로 이동해서 configure 명령어를 실행합니다. prefix 옵션을 통해 설치 위치를 지정합니다.

make && make install 을 하면 설치가 완료됩니다.


./configure --prefix=/svc/apache/pcre8.41
make
make install



만약에 pcre 를 설치하기전에 expat-devel 이 설치되어있지 않으면 아래 오류메시지를 만나게 됩니다.

xml/apr_xml.c:35:19: error: expat.h: No such file or directory
xml/apr_xml.c:66: error: expected specifier-qualifier-list before ‘XML_Parser’
xml/apr_xml.c: In function ‘cleanup_parser’:
xml/apr_xml.c:364: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:365: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c: At top level:
xml/apr_xml.c:384: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
xml/apr_xml.c: In function ‘apr_xml_parser_create’:
xml/apr_xml.c:401: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:402: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:410: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:411: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:412: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:424: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:424: error: ‘default_handler’ undeclared (first use in this function)
xml/apr_xml.c:424: error: (Each undeclared identifier is reported only once
xml/apr_xml.c:424: error: for each function it appears in.)
xml/apr_xml.c: In function ‘do_parse’:
xml/apr_xml.c:434: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:438: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c:442: error: ‘apr_xml_parser’ has no member named ‘xp_err’
xml/apr_xml.c:442: error: ‘apr_xml_parser’ has no member named ‘xp’
xml/apr_xml.c: In function ‘apr_xml_parser_geterror’:
xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’
xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/home/goni9071/apr-util-1.6.1'
make: *** [all-recursive] Error 1




3. apr, apr-util 설치


다운로드 URL : https://apr.apache.org/


URL로 이동하면 아래 화면이 나오는데 빨간박스 부분을 클릭합니다. (위,아래 모두 동일한 링크입니다.)


위의 링크를 클릭하면 아래화면이 나옵니다.

APR과 APR-util을 각각 최신버전으로 다운로드 받습니다.


모두 다운로드 받았으면 pcre와 동일하게 다음 절차를 진행합니다.

prefix를 통해 설치 위치를 지정하고  --with-apr을 통해 apr이 설치된 위치를 알려줍니다.


tar -xvzf  apr-1.6.3.tar.gz
cd apr-1.6.3
./configure --prefix=/svc/apache/apr1.6
make
make install
 
tar -xvzf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1
./configure --with-apr=/svc/apache/apr1.6 --prefix=/svc/apache/aprutil1.6
make
make install




4. 마지막으로 apache를 설치합니다.

다운로드 URL : http://httpd.apache.org/download.cgi


URL로 이동해서 아래화면의 빨간박스를 클릭합니다.


마찬가지로 다운롤드 받은 파일의 압추을 풀고 다음 절차대로 진행합니다.

prefix를 통해 설치위치를 지정하고 with-apr을 통해 apr 설치위치를 알려줍니다.

with-apr-util을 통해 apr-util 설치 위치를 with-pcre를 통해 pcre 설치위치를 알려줍니다.

enable-proxy 는 ProxyPass 기능이 필요해서 추가하였습니다.

enable-rewrite  역시 RewriteRule 기능이 필요해서 추가하였습니다.

tar -xvzf httpd-2.4.29.tar.gz
 
cd httpd-2.4.29
 
./configure --prefix=/svc/apache/httpd2.4 --with-apr=/svc/apache/apr1.6 --with-apr-util=/svc/apache/aprutil1.6 --with-pcre=/svc/apache/pcre8.41 --enable-proxy --enable-so --enable-rewrite
 
make
 
make install
cs



다음 명령어를 통해 아파치를 시작할 수 있습니다.

/svc/apache/httpd2.4/bin/httpd -k start





다음은 apr을 설치하지 않고 아파치 configure를 진행했을 때 발생하는 오류입니다.

checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
configure: 
configure: Configuring Apache Portable Runtime library...
configure: 
checking for APR... no
configure: error: APR not found.  Please read the documentation.



반응형

+ Recent posts