多くのユーザーがこのスレッドに陥り、nginx + php-fpmを使用しているときに空白ページが表示されるという解決策が見つかると予想しており、私もその1人です。これは、ここで答えの多くを読んだ後に私がやったことの要約と自分の調査(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
、サイト構成ファイルのパラメータと一致する必要があります(つまり、:) /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の 2つの可能なパラメーターファイルが含まれています。両方の違いは、変数の定義です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ページをテストしている場合)。