Nginxから500エラーが発生し、頭がおかしくなりました。まず、personalsite.conf
があります。サーバーブロックがある/etc/nginx/conf.d/
内のアーカイブ。
これはサーバーブロックの構成です:
server { listen 80; server_name personalsite.me; charset UTF-8; access_log /var/log/nginx/personalsite.access.log main; error_log /var/log/nginx/personalsite.error.log; root /usr/share/nginx/html/personalsite; index index.php index.html index.htm; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html/; } location ~ \.php$ { try_files $uri =404; include fastcgi_params; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
さらに、nginxユーザーには/usr/share/nginx/html/personalsite/
を介して割り当てられた適切な権限があります。
ですが、面白いのは、personalsite.access.log
をチェックして確認したので、ブラウザが空白になったためです。理由は不明です。ご覧のとおり、Nginxはサーバーブロックで適切に宣言された500エラーページを表示できません。
もう1つの奇妙な点は、personalsite.error.log
が空白になっていることです。何も記録されません。
また、/etc/hosts
アーカイブでそのドメインをIPで宣言しているので、ここで何が起こっているのか本当にわかりません。
すべてがrですDigital OceanVPSを介してCentOS7をアンニングします。
回答
ほとんどのエラーは、Nigixのセットアップ時の設定ミスが原因で発生します。ファイル(/etc/php-fpm.d/www.conf
)を確認することをお勧めします。
vi /etc/php-fpm.d/www.conf
listenパラメーターを指定する行を見つけて、次のように変更します。
listen = /var/run/php-fpm/php-fpm.sock
次に、listen.owner
とlisten.group
そしてコメントを外します。次のようになります。
listen.owner = nobody listen.group = nobody
最後に、ユーザーとグループを設定する行を見つけて、値を「apache」から「nginx」に変更します。
user = nginx group = nginx
保存して終了
/etc/init.d php-fpm restart
回答
世界で最良の答えではありませんが、500エラーはあいまいです。これは、nginx構成であるか、サイトコンテンツに関連している可能性があります。問題を再現できるようになるまで、構成を最小限に抑えて再構築します。
サイトのコンテンツを、プレーンテキストのみを含む単純なindex.htmlに置き換えます。余分なエラーディレクティブとロケーションブロックはすべて省略してください。基本的な機能を確立したら、問題の原因となっているディレクティブを特定し、そこから根本原因を見つけるまで、気が狂いを感じずに他のディレクティブを追加して、テストを進めていきます。
コメント
回答
PHP display_errorsが無効になっている場合、PHPエラーはNginx500エラーを返す可能性があります。
php-fpmログを確認する必要があります。エラーはそこにあります。 CentOS 7の場合:
tail -f /var/log/php-fpm/www-error.log
PHPエラーを表示することもできます。 /etc/php.iniで、:
display_errors = Off
を:
display_errors = On
divに変更します。 >
phpinfo.php
ファイルに置き換えたところ、完全に実行されました。実行しようとしているWebサイト'は、Yiiフレームワークを使用しています。公式ウィキを確認したところ、"ソフトウェアはnginx、php-fpm(php5-fpm)です。パフォーマンスのために、IP:PORT経由ではなく、SOCKETモードでphp-fpmを実行することをお勧めします'。これは、以下に示す方法です" I ' mはまさにそのようにNginxを使用しています。そのため、なぜ500エラーが発生し、error.logに書き込まれないのかわかりません。