많은 사용자 가이 스레드에 빠져 nginx + php-fpm 을 사용하는 동안 빈 페이지가 표시되는 솔루션을 찾을 것으로 기대 합니다. 이것은 여기에 많은 답변과 내 자신의 조사 (php7.2로 업데이트 됨)를 읽은 후에 한 일을 요약 한 것입니다.
1) /etc/php/7.2/fpm/pool.d/www.conf
파라미터 값을 열고 확인합니다 listen
.
listen = /var/run/php/php7.2-fpm.sock
2) 매개 변수 listen
는 fastcgi_pass
사이트 구성 파일의 매개 변수 와 일치해야 합니다 (i, e :) /etc/nginx/sites-enabled/default
.
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
3) 파일이 실제로 존재하는지 확인하십시오.
$ file /var/run/php/php7.2-fpm.sock
/var/run/php/php7.2-fpm.sock: socket
4) 존재하지 않으면 php7.2-fpm 이 실행되고 있지 않다는 것을 의미 하므로 다시 시작해야합니다.
$ sudo /etc/init.d/php7.2-fpm restart
[ ok ] Restarting php7.2-fpm (via systemctl): php7.2-fpm.service.
의 location
섹션 과 관련하여 /etc/nginx/sites-enabled/default
:
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
파일 snippets/fastcgi-php.conf
이 위치에 있는지 확인하십시오 /etc/nginx/
.
$ file /etc/nginx/snippets/fastcgi-php.conf
/etc/nginx/snippets/fastcgi-php.conf: ASCII text
이 파일에는 php7.2-fpm에 필요한 변수 정의 목록이 포함되어 있습니다. 변수는 직접 또는 분리 된 파일의 포함을 통해 정의됩니다.
include fastcgi.conf;
이 파일은 다음 위치에 /etc/nginx/fastcgi.conf
있으며 다음과 같습니다.
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
...
fastcgi_param REDIRECT_STATUS 200;
nginx 에는 두 개의 가능한 매개 변수 파일 인 fastcgi_params 및 fastcgi.conf가 포함되어 있습니다. 둘의 차이점은 변수의 정의입니다 SCRIPT_FILENAME
.
$ diff fastcgi_params fastcgi.conf
1a2
> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
긴 이야기를 짧게하려면 fastcgi.conf 가 항상 작동해야합니다. 어떤 이유로 든 설정이 fastcgi_params를 사용 하는 경우 다음을 정의해야합니다 SCRIPT_FILENAME
.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
이제 nginx 구성을 다시로드하십시오.
$ sudo nginx -s reload
그리고 PHP 파일이 올바르게 표시되는지 확인하십시오. 예를 들어 :
/var/www/html/test.php
<pre><?php var_export($_SERVER)?></pre>
/var/www/html
문서 루트의 경로는 어디에 있습니까 ?
여전히 빈 파일을보고있는 그 모든에도 불구하고, 확인 경우가 php.ini
있다 short_open_tag
(당신이 짧은 태그와 PHP 페이지를 테스트하는 경우)를 활성화.