지니워의 일상다반사

nginx를 설치하다. 본문

본격 SE업무이야기/nginx

nginx를 설치하다.

지니워 2013. 7. 26. 18:00

사내에 테스트 서버가 있다. 말그대로 여러가지 것들을 테스트 해보기 위해 마련된 서버인데 얼마전 pma를 설치한 서버에서 원인불명의 이유로 pma가 먹통이 되면서 Master DB 및 Slave DB를 연결하는 pma를 테스트 서버에 설치했다. Test DB까지 합쳐서 모두 5개 서버의 pma를 담당하게 된 것이다.


즉, 테스트 서버는 이제 없다 ㅠ 이거 모르고 nginx 설치하고 restart하는 바람에 pma 전체가 먹통이 되어버렸다 -_-...이제야 안거지만 pma사용할 때 nginx의 설정을 바꾸고 restart하면 php-fpm도 restart해줘야 pma가 정상적으로 작동한다. 아마 php-fpm이 nginx의 설정에 영향을 받는 것 같다. 이렇게 영향을 받고 있는 가운데 nginx가 restart 되어버렸고 기존 nginx의 설정을 인식하고 있던 php-fpm에 새로운 nginx의 설정들이 영향을 끼치면서 php-fpm의 작동이 멈춰버렸고 그것 때문에 php 기반의 pma가 오류를 일으킨 것 같다.


음음...아무튼 덕분에 VirtualBox라는 가상머신을 설치하고 여기에 CentOS 6.4버전을 설치했다.



Tip) 아마 대부분의 SE는 GUI모드를 사용하지 않을 것이다. VirtualBox는 해상도를 조절하기 위해 VBoxGuestAddition이라는 확장 프로그램을 설치해야 하는데 이 확장프로그램을 설치하는게 참 까다롭다. 선행 lib 설치할 것도 많고 다 설치하더라도 무슨 이유때문인지 KERN_DIR도 설정해야하고 이만저만 까다로운 것이 아니다. 그렇다고 이걸 그냥 설치 안하자니 해상도가 낮아서 짜증지수가 폭발 할 수도 있다. 그러다 문뜩 든 생각.


'ssh로 접속 연결하면 되지 않을까?'


결과부터 이야기하면 된다. VirtualBox에서 사용하는 IP는 192.168.0.xxx. 즉, 데스크탑과 연결되어 있다는 것이다. 다른 PC에서는 안되겠지만 local pc에서는 ssh로 접속이 되기 때문에 Xshell로 접속했다. 익숙하고 넓은 화면의 프롬프트 창을 보니 이렇게 반가울 줄이야!



nginx를 설치하기 위해 우선 nginx를 다운받아야 한다. 구글링을 통해 알아낸 nginx의 repo를 생성해서 yum install했으나 실패. repo정보가 틀리거나 변경된 듯 하다. 그래서 wget 방식으로 직접 다운 받기로 했다.


nginx 다운로드 주소 : http://nginx.org/download


nginx를 다운받으려고 공식 홈페이지(nginx.org)에 가서 여기저치 찾아봐도 압축파일을 찾지 못했다.(rpm 패키지는 있다.)실서버에서 사용중인 nginx와 버전을 맞추려고 구글링해서 위 다운로드 주소를 찾아냈다.


wget http://nginx.org/download/nginx-1.2.4.tar.gz


실서버에서 1.2.4버전을 사용하기 때문에 1.2.4버전 다운로드. 그리고 압축 해제.


src 보관은 개인취향이기 때문에 굳이 명시하지 않겠다. 난 src들을 보관하는 편인데 따로 src폴더를 만들어서 거기다 옮겨버린다. 그러면 source로 설치한 package들을 알수도 있고 유사시에 재설치를 할 때 유용하게 쓰인다.


source로 설치하는 것은 대부분 컴파일을 해야한다. 그리고 선행 lib가 필요한 경우가 대부분인데 nginx도 그렇다.



nginx설치 전 필요한 lib)

gcc, pcre, pcre-devel, zlib, zlib-devel, openssl



이것들을 설치하고 난 다음 컴파일을 진행한다. 컴파일시 prefix라던가 추가 모듈설치 등등 할게 많은데 하나하나 설명하기도 어렵고 그럴 만한 능력도 없으니(...눈물난다 ㅠ)내가 사용한 컴파일 명령어를 그대로 적겠다.


./configure --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module



추가) OS를 어떻게 설치했느냐에 따라 선행 패키지가 필요하다고 나오는 경우가 있다. CentOS 6.4 64bit기준, Basic Server로 설치했을 경우 위와 같이 comfile하면 libxml2/libxslt가 필요하다고 나온다. 이럴 경우


yum install libxml2-devel 
yum install 
libxslt-devel

로 해당 패키지를 설치해 줘야 한다.



원래 http_img_module이랑 http_geoip_module도 설치하려고 했는데 선행 lib가 필요하단다. 그중 하나가 gd lib인데(지드래곤 아님)구글링 해보니 gd lib가 참 악명이 높더라. 그래서 귀찮아서 패스. geoip도 선행 lib로 geoip가 필요하다는데 yum install해도 못찾길래 걍 패스했다. 어차피 현재 실서버에도 두 모듈은 사용하지 않고 있으니 상관 없겠지.


컴파일 했으면 뭐해야 할까? 당연히 컴파일 한걸 make로 묶은 다음에 이 묶은걸 make install해줘야한다. 설치하는동안 블라블라블라~설치목록이나 내용들이 화면을 채우고 완료 되면 명령대기 상태로 돌아온다. 제일 마지막줄에 error 어쩌고저쩌고 없으면 성공한거니까 갑자기 명령대기 상태 된다고 당황하지는 말자.


일단 여기까지 별 이상없이 완료했다면 nginx의 설치는 끝난 것이다.

다음에는 nginx의 환경설정에 대해 써볼까 하는데 그 다음이 언제가 될지는 미지수...-_ㅡ^


Comments