Apache HTTP Server

Amazon Linux 깡통에 Apache HTTP Server 2.4 컴파일 설치기

애리얼·2020년 12월 11일·조회 13,136

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 를 추가하여 수행하면 해결된다! :)

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.