맛집 여행 캠핑 일상 생활

[시놀로지] NGINX + PHP7.0 html 확장자 php 먹히게 하는 방법 본문

IT이야기

[시놀로지] NGINX + PHP7.0 html 확장자 php 먹히게 하는 방법

영은파더♥ 2020. 6. 3. 14:49

웹서치를 아무리 해봐도 제가 딱 원하는 정보가 없어서 정리해봅니다.

시놀로지 나스에 웹호스팅 서비스가 가능한데 WebStation + nginx + php7.0 기준으로 설명합니다.
Apache2.4 + PHP7.0 환경도 설명을 추가합니다.

index.php 파일은 php 코드가 실행이 되는데 index.html 파일은 먹히지 않아서 어떻게 하다보니 access denied 까지 에러가 뜨는군요~

인터넷에 설명된 방법만으론 뭔가 부족하다는 이야기입니다.

sudo -i 로 root 권한을 가진 다음에 아래 처럼 진행하면 됩니다.

 

1. nginx 환경 설정 추가

# cat /etc/nginx/app.d/server.webstation-vhost.conf

...

server {

...

    location ~* \.(php[345]?|phtml)$ {
        fastcgi_pass unix:/run/php-fpm/php-642a9f1e-0d20-4664-8349-1d34f6c509de.sock;
        fastcgi_param HOST "itrooms.synology.me";
        include fastcgi.conf;
    }

    include /usr/local/etc/nginx/conf.d/8e3fecda-aa57-45f8-a907-5909a54577b9/user.conf*;

}

위 설정 파일은 주기적으로 원래대로 돌아가는 파일입니다. ( 아무리 편집해서 저장해도 어느 순간 원래의 내용으로 돌아감 )
그래서 아래 부분에 보시면 user.conf* 부분이 있습니다.
/usr/local/etc/nginx/conf.d/나스마다폴더명이다름/user.conf* 인데 이 파일명으로 설정 파일을 만들어 주어야 합니다.

# vi /usr/local/etc/nginx/conf.d/8e3fecda-aa57-45f8-a907-5909a54577b9/user.conf.php

    location ~* \.(php[345]?|phtml|html)$ {
        fastcgi_pass unix:/run/php-fpm/php-642a9f1e-0d20-4664-8349-1d34f6c509de.sock;
        fastcgi_param HOST "itrooms.synology.me";
        include fastcgi.conf;
    }

위에서 location 내용 부분을 복사해서 html 부분을 추가해서 /usr/local/etc/nginx/conf.d/나스마다폴더명이다름/user.conf.php 파일로 저장합니다.

 

2. PHP fpm.conf 파일 수정

# cat /usr/syno/etc/packages/WebStation/WebStation.json

{
        "default" :
        {
                "backend" : 2,
                "php" : "649f1e2a-200d-4646-9384-f609c51d34de",
                "userdir" : null
        },
        "version" : 2
}

# cat /usr/syno/etc/packages/WebStation/php_profile/649f1e2a-200d-4646-9384-f609c51d34de/fpm.conf
[global]
pid = /run/php-fpm/php70-649f1e2a-200d-4646-9384-f609c51d34de.pid
error_log=syslog
syslog.facility = daemon
syslog.ident = php70-fpm
log_level = warning
daemonize = no

[www]
user = http
group = http
listen = /run/php-fpm/php-649f1e2a-200d-4646-9384-f609c51d34de.sock
listen.owner = http
listen.group = http
listen.mode = 0660
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
security.limit_extensions = .php .php3 .php4 .php5 .phtml .html

fpm.conf 파일도 나스마다 폴더 위치가 다릅니다. /usr/syno/etc/packages/WebStation/WebStation.json 파일에서 폴더명을 알아낼 수가 있습니다.
알아낸 다음에 fpm.conf 파일에서 security.limit_extensions = .php .php3 .php4 .php5 .phtml 부분을 찾아서 .html 을 추가하고 저장합니다.

엔진엑스를 재시작하고 WebStation 도 재시작 한다음 확인하시면 됩니다.

synoservice --restart nginx 

웹스테이션은 gui 에서 해주세요~ 명령어로 시도해 보니 잘 안되더군요~


Apache2.4 + PHP7.0 에서 html 확장자에서 php 코드가 먹히게 하는 방법입니다.

1. 아파치 설정 추가

# cat /usr/local/etc/apache24/sites-enabled/httpd-vhost.conf
...
<VirtualHost *:8080>
    ...
    <FilesMatch "\.(php[345]?|phtml)$">
        SetHandler "proxy:unix:/run/php-fpm/php-649f1e2a-200d-4646-9384-f609c51d34de.sock|fcgi://localhost"
    </FilesMatch>
</VirtualHost>

# vi /usr/local/etc/apache24/sites-enabled/php.conf
    #AddType application/x-httpd-php .html
    <FilesMatch "\.(php[345]?|phtml|html)$">
        SetHandler "proxy:unix:/run/php-fpm/php-649f1e2a-200d-4646-9384-f609c51d34de.sock|fcgi://localhost"
    </FilesMatch>

/usr/local/etc/apache24/siteshttpd-vhost.conf 파일에서 수정하면 좋겠지만 이 파일 또한 원래대로 돌아가는 파일입니다.
그래서 파일을 추가하여야 합니다.
/usr/local/etc/apache24/sites-enabled/php.conf 파일명으로 위 내용을 추가하고 저장합니다.

 

2. PHP fpm.conf 파일 수정

이 부분의 위의 nginx 설정과 동일합니다.

웹스테이션을 재시작 합니다.

 

Trackback : | Comments :