2~3년에 한번 가량으로 CentOS를 새로 설치하는데…
매번 새로 설치해할때마다 어떻게 설정/세팅했는지 기억이 안나 고생하네요.
그래서 이번만큼은 새로 설치하면서 흔적을 남겨봅니다.
centos는 7.0으로 minimal버전(개발자 도구)으로 설치 후 nginx 설치 방법입니다.
※ 참고로 필자도 리눅스는 잘 모릅니다. 구글링의 해택을 누릴뿐…
nginx 설치를 위한 사전 작업
nginx의 docs를 보면 Stable version 설치 방법이 있습니다.
주소 – http://nginx.org/en/linux_packages.html
To set up the yum repository for RHEL/CentOS, create the file named [nginx] name=nginx repo baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/ gpgcheck=0 enabled=1 Replace “ |
이렇게 친절하게 나와있습니다. 문제는 영어로요.- _ㅠ
어쨌든 해당 내용대로 하면…
# vi /etc/yum.repos.d/nginx.repo
입력 이후 아래 내용을 입력합니다.
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 |
그리고 저장!
참고로 저장은 ‘esc’ 키 입력 후 ‘:w'(저장) , ‘:q'(종료)
이제 설치 준비는 끝났으니 설치를 시작합시다!
nginx 설치
# sudo yum install nginx.x86_64
그냥 sudo yum install nginx 로도 설치 된다고 나와 있는데, 이상하게 설치가 안되어 위에처럼 하니 설치되네요.
nginx 실행 방법
# sudo nginx
사용을 위한 방화벽 해제
아참 방화벽 해제를 해야되는데…
# firewall-cmd –permanent –zone=public –add-service=http
# firewall-cmd –permanent –zone=public –add-service=https
# firewall-cmd –reload
를 통해 포트를 오픈하거나 그냥 방화벽 기능을 꺼버립니다.ㅋㅋ
# systemctl disable firewalld
이후 설치한 주소로 접속하면 “Welcome to nginx!” 이라고 페이지가 떠야 정상적으로 설정된거임
nginx 서비스 등록
제대로 설치가 된것을 확인했으니, 이제 서비스에 등록합시다.
# systemctl start nginx
# systemctl enable nginx
웹파일 수정은?
홈페이지에 노출될 웹파일 수정 경로는 아래와 같습니다.
/usr/share/nginx/html
php와 연동은 아래 링크를 참고!
링크 : CentOS 7, PHP7 설치 방법 (nginx 기준)
nginx 관련 설정 변경을 할 시에는
# vi /etc/nginx/nginx.conf
아래 내용 중 보안 부분은 >와이즈번님 블로그<를 참고했습니다.
(참고 부분 : gif파일로 위장한 php파일을 업로드하여 동작시키는 거 방지!)
nginx 설정 부분은 >님프님 블로그<, >youngjae님 블로그<를 참고했습니다.
user nginx; #php-fpm 파일에 user명과 같아야합니다. error_log /var/log/nginx/error.log warn; // 에러 로그 저장 위치 events { http { log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘ access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; gzip on; // 주석제거 (압축 전송 기능) #추가처리! include /etc/nginx/conf.d/*.conf; #vhost 를 sites-enabled 디렉토리에서 관리 |
보안 관련~
#vi /etc/nginx/fastcgi_params
해당 내용은 >와이즈번님 블로그<를 참고했습니다.
(참고 부분 : gif파일로 위장한 php파일을 업로드하여 동작시키는 거 방지!)
set $fastcgi_script_realname $fastcgi_script_name;
if ( $fastcgi_script_name ~ ^(.*\.php)(/.*)$ ) { set $fastcgi_script_realname $1; set $path_info $2; } if (!-f $document_root$fastcgi_script_realname) { return 404; } ※ /etc/nginx/fastcgi_params 파일 제일 위에 넣으면 됩니다. |
설정했으니 정상 동작할 수 있게 reload~ 진행으로 마무리!
#systemctl reload nginx
※ 추신 : 혹 설치 시 public key for nginx~~~~~~ is not installed 이러면서 에러가 나신다면, vi로 입력한 부분에 오타를 확인 하시거나 gpgcheck 항목이 0이 아닌 1로 되어 있는게 아닌지 확인해보세요~
( 전 gpgcheck를 오타쳐서 한참 고생했네요 ㅋㅋ )