물론!!!!
중견 레벨 이상의 개발자, 웹서버 운영자들에게는 코웃음칠 내용이고!!
yum으로 설치하지 누가 미쳤다고 아파치를 컴파일하냐면 할 말이 없긴 합니다만!!
웹서버의 햄스터 레벨인 저 같은 멈무멈무들을 위해 간략하게 메모를 남긴다면
아파치를 처음 깔아서 컴파일을 하다 보면
/httpd-2.4.37/build/rules.mk:75: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
대략 요런 에러가 나올 때가 있죠 ㅠㅠ
이 에러는 PCRE, 즉 Perl Compatible Regular Expressions 라는 정규표현식 C라이브러리가 없기 때문에 발생하는 문제입니다.
어짜피 아파치 컴파일 할때 어짜피 apr 필요하니까 require package들을 apt-get이나 yum으로 gcc apr-devel apr-util-devel zlib-devel openssl-devel 뭐시기뭐시기 막 줄줄 깔잖아요?
그때 pcre-devel.x86_64도 추가해줍니다. (apt-get을 쓰실 땐 libpcre3, libpcre3-dev 이겠죠.)
이걸로 problem solved!!!! 면 좋겠는데.....
그런데......(제가 이걸 테스트한답시고 윈도우 서브시스템 리눅스에 깔아서 그런걸수도 있지만) 간혹 가다 보면 패키지로 딱 깔았는데도 얘가 인식을 못하고 계속 뭔 리커시브 뭔 리커시브 하면서 리커시브....시브.....시부...시불.... 하게 만드는 경우가 있습니다. 저만 그런게 아니더라구요. 심지어는 configure 명령어에 --with-pcre=/your/freaking/damn/miserable/country 뭐 요렇게 pcre 설치 경로를 적용해줘도 짤 없어요. 막 안 돼요. make만 하루죙일 때려도 안 됩니다.
그럴땐!!! 그냥 애초에 apache config할 때 꾸겨넣고 같이 make를 돌려버리면 됩니다.
apache 쿠킹 레시피
(여타 dependency package들은 다 깔았다 가정합니다.)
1. 후라이팬을 예열....아 아니......아파치 소스를 받습니다. 매운맛으로...... (http://httpd.apache.org/download.cgi)
저는 하도 요즘 웹서버를 안 잡아본지라 stable한 애가 뭔지를 몰라서 걍 최신으로 받았습니다.
wget https://www-us.apache.org/dist//httpd/httpd-2.4.37.tar.gz
2. (필수) PCRE를 받습니다. (https://www.pcre.org/)
뭘 받아야할 지 모르시겠거나 이 파일이 없어졌다면 제일 비슷한 이름으로 받습니다
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
3. (선택) APR을 받습니다. (http://apache.mirror.cdnetworks.com/apr/)
PCRE도 에러 터져서 엉엉 우시는 분은 이것도 같이 문제 생길 확률이 굉장히 높습니다.
그냥 이것도 받아 줍니다.
wget http://apache.mirror.cdnetworks.com/apr/apr-1.6.5.tar.gz
wget http://apache.mirror.cdnetworks.com/apr/apr-util-1.6.1.tar.gz
4. 파일 4개를 한 디렉토리에 모아놓고 계란을 톡 하고 깝니다.
tar -zxf ./*.tar.gz
5. 신선한 노른자가 보이는군요. 한 군데로 잘 모아 줍니다.
cd httpd-2.4.37
mkdir srclib
mv ../apr-1.6.5 ./srclib/apr
mv ../apr-util-1.6.1 ./srclib/apr-util
mv ../pcre-8.42 ./srclib/pcre
이름을 apr, apr-util, pcre 요래 딱 바꿔주셔요
6. 후라이팬을 예열합니다.
./configure --prefix=/당신원하는폴더/apache-2.4.37 --enable-cgi --enable-info --enable-deflate --enable-ssl --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-expires --enable-headers --enable-rewrite --enable-so --with-included-apr --with-included-apr-util --with-included-pcre
어짜피 중간 옵션은 원하시는 대로 하셔도 되구요, 벌겋게 달아오른 부분이 스팟입니다. apr로는 문제가 안 생기는 분들은 앞의 두 뭉탱이는 떼고 뒤의 한 뭉탱이만 붙여도 무방합니다.
7. 지글지글 익힙니다.
make clean
make
make install
8. 에러가 안 나는군요. 끝.
이 글의 타겟은 한정적입니다. 사실 이걸 누가 보고 도움을 받을 사람도 없을 것 같기도 해요.
하지만 어딘가에서 저와 같은 문제로 괴로워하고 계실 햄스터급 개발자가 계시다면
저의 실수와 시행착오가 만들어 낸 eagle이 도움이 되길 바랍니다
'정말로 그만둘 텐가? 부가 당신을 그리워할 거야... '
얼마전에 깔려고 쌩쇼를 하다가..
멘탈이 나가서 /etc에서 rm -rf *를 입력해서 서버 날려 먹고...
새로 설치하고 하느라 힘들었네요. 결국 centos 포기하고 ubuntu 깔아서 apt로 설치를 했습니다..
yum으로도 컴파일으로도 어떻게 해도 설치가 안 되더라구요.. ㅋㅋㅋㅋ ㅠㅠ
2.4 들어서면서부터 이것저것 필요한게 더 많아져서 잘 안 깔리고 그러나봐요 ㅋㅋㅋㅋㅋ
제가 한달전에 글을 썼어야 했는데 ㅠㅠ