기존에는 CentOS에 nginx, php-fpm, MySQL을 설치하여 웹서버를 사용하고 있었으나
시놀로지에서 한번에 관리하고 싶어 시놀로지로 모두 옮겼다.
단순히 nginx, php만 띄워서는 원하는 대로 접속이 되지 않아 내가 설정한 방법을 정리한다.
nginx + php-fpm + CodeIgniter 설정 방법
1. 시놀로지 패키지 센터에서 아래의 패키지를 설치한다.
- Webstation
1-1. 디폴트로 PHP 7.0을 사용하도록 되어 있는데 필요한 버전의 PHP 버전을 패키지 센터에서 설치하면 된다. 나의 경우 PHP 5.6을 설치함
2. Web Station 가상 호스트 탭에서 접속하기를 원하는 포트와 directory 정보, 웹서버 정보등을 설정한다.
- 아래 예제는 http://servername:9999 로 접속하고, nginx, php5.6을 사용하는 예제이다.
3. 설정을 했다면 ssh로 접속하여 nginx의 config를 확인
- nginx config 경로 : /etc/nginx/app.d/server.webstation-vhost.conf
$ cat /etc/nginx/app.d/server.webstation-vhost.conf
server {
listen 9999;
listen [::]:9999;
location / {
return 404;
}
}
server {
listen 9999;
listen [::]:9999;
server_name servername;
root "/volume1/web";
index index.html index.htm index.cgi index.php index.php5 ;
error_page 400 401 402 403 404 405 406 407 408 500 501 502 503 504 505 @error_page;
location @error_page {
root /var/packages/WebStation/target/error_page;
rewrite ^ /$status.html break;
}
location ^~ /_webstation_/ {
alias /var/packages/WebStation/target/error_page/;
}
location ~* \.(php[345]?|phtml)$ {
fastcgi_pass unix:/run/php-fpm/php-844257d5-dd27-4885-8fd8-96cf320e39ac.sock;
fastcgi_param HOST "tksvpn.uangel.com";
include fastcgi.conf;
}
include /usr/local/etc/nginx/conf.d/abcdefgh-ijkl-mno-a8ad-93bafc932afc/user.conf*;
}
- 여기서 include로 되어 있는 곳을 확인
( /etc/nginx/app.d/server.webstation-vhost.conf 파일은 수정하더라도 재기동되면 초기화 되기 때문에 include로 되어 있는 곳에 개인 config파일을 설정하여 관리한다. )
4. include 되어 있는 곳에서 user.conf 파일 생성 ( root 계정에서 수행해야 함 )
$ sudo vi /usr/local/etc/nginx/conf.d/abcdefgh-ijkl-mno-a8ad-93bafc932afc/user.conf
5. 아래의 내용을 추가하고 저장한다.
location /coin {
index index.html index.php;
try_files $uri $uri/ /coin/index.php;
}
location ~ /\.ht {
deny all;
}
6. nginx reload
$ sudo nginx -s reload
7. 접속 확인
- documet root는 /volume1/web 이고
- CodeIgniter 코드는 /volume1/web/coin 아래에 두고
- http://servername:9999/coin 으로 접속하면 접속이 된다.