Print
카테고리: [ Apache HTTP Server ]
조회수: 11611

1. 설치 준비 

Apache HTTP Server 2.4를 소스 컴파일하여 설치하려면 필요한 패키지들이 많다. 

httpd소스를 configure 하기 이전에 apr, apr-util, pcre 들을 설치해주어야 하는데, 이들을 컴파일하기 위해서도 많은 패키지들의 설치가 진행된다. 

우선적으로 필요한 CC! 컴파일러가 설치되어있어야 configure 명령어 실행이 가능해진다. 

일단 yum 으로 설치를 진행해 보자~

 yum install gcc 

apr 부터 차근차근 configure;make;make install 을 진행하다보면 필요한 패키지들이 속속들이 나오게 된다. 

gcc 설치하고 나서 쭉 진행하면서 추가로 설치했던 패키지들을 쭉 나열해보자면,

zlib-devel, openssl-devel, expat, expat-devel, expat-static, libtool, g++ 들이 있었다. 
 
컴파일러도  gcc 뿐만 아니라 g++도 설치를 해주어야 한다. 참고로 이 아이는 pcre 소스 컴파일 설치 시에 필요하다.

 

 

2. 설치를 하며 만났던 에러 케이스

 * Err case 1) apr 설치 시에 발생한 에러 1

error (1) : xml/apr_xml.c:35:10: fatal error: expat.h : No such file or directory

 이 에러는 다음의 파일들을 yum 설치해주면 해결된다.

   : expat, expat-devel, expat-static

 

* Err case 2) apr 설치 시에 발생한 에러 2

cannot remove 'libtoolT' : No such file or directory 

이것도 에러 메시지 그대로 libtool을 yum 설치해주면 끝!

 

* Err case 3) httpd 설치 시에 발생한 에러 1 : 라이브러리 Linker 비정상 종료 에러 ("collect2: error: ld returned 1 exit status") 

....
/engn001/APACHE2.4/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString'
/engn001/APACHE2.4/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler'
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] 오류 1
make[2]: Leaving directory `/engn001/installer/httpd-2.4.46/support'
make[1]: *** [all-recursive] 오류 1
make[1]: Leaving directory `/engn001/installer/httpd-2.4.46/support'
make: *** [all-recursive] 오류 1
.....

 configure수행 끝에 만난 오류 내용인데, 이는 configure 옵션에 --with-included-apr 를 추가하여 수행하면 해결된다! :)