nginx は、Web アプリケーションで動的コンテンツをレンダリングするために PHP とともによく使用される高性能 Web サーバーです。ただし、場合によっては、nginx が PHP ファイルを正しく解析できず、アプリケーションが適切に実行できなくなることがあります。この記事では、nginx が PHP ファイルの解析に失敗する原因となるいくつかの一般的な問題を調査し、解決策を提供します。
まず、PHP がサーバーにインストールされており、nginx が正しく動作するように構成されていることを確認してください。 PHP が正しくインストールされているかどうかを確認するには、ターミナルを開いて次のコマンドを実行します。
php -v
これにより、サーバーに現在インストールされている PHP のバージョンが表示されます。 PHP のバージョンが表示されない場合は、PHP のインストールを検討してください。
PHP が nginx で動作することを確認するには、nginx 構成ファイルを編集して次の行を追加します。
location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
ここでは、nginx が PHP ファイルを処理するために使用する場所とその他のパラメーターを指定します。このスニペットが nginx 設定ファイルにあり、その中の sock ファイルが PHP 設定ファイルと一致していることを確認してください。
Web アプリケーションのホームページが Index.php であるが、nginx で自動的に処理されない場合は、次の内容を追加する必要があります。次のように、nginx 設定ファイルの「index」ディレクティブにindex.phpを追加します。
index index.php index.html;
これで、ホームページを開くと、nginxは自動的にindex.phpを検索し、正しく処理します。
nginx が PHP ファイルを解析できないもう 1 つの主な理由は、アクセス許可が正しくないことです。次のことを確認してください:
また、PHP ファイルの所有権が nginx ユーザーに設定され、PHP ファイルが配置されているディレクトリの所有権が nginx グループに設定されていることを確認してください。これは、次のコマンドを使用して実現できます。
sudo chown -R nginx:nginx /var/www/html/
ここでは、/var/www/html/ ディレクトリの所有権を nginx ユーザーとグループに割り当てます。
nginx が PHP ファイルを解析できず、エラー メッセージが表示されない場合は、PHP モジュールが有効になっていることを確認してください。これを有効にするには、nginx のコンパイル オプションを編集し、次の行を追加します:
--with-http_stub_status_module \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_auth_request_module \ --with-http_image_filter_module \ --with-http_geoip_module \ --with-http_degradation_module \ --with-http_xslt_module \ --with-http_stub_status_module \ --with-http_spdy_module \ --with-http_auth_request_module \ --with-http_slice_module \ --with-mail \ --with-mail_ssl_module \ --with-ipv6 \ --with-pcre \ --with-stream \ --with-stream_ssl_module \ --with-threads \ --with-debug \ --add-module=/path/to/php-src/sapi/nginx/
ここでは、PHP モジュールを有効にするために --add-module=/path/to/php-src/sapi/nginx/ を追加しました。
nginx が PHP ファイルを解析できないが、エラー メッセージが表示されない場合は、PHP エラー ログでエラーに関する詳細情報を見つけることができます。 PHP エラー ログを有効にするには、php.ini ファイルを開いて次の行のコメントを解除します。
error_log = /var/log/php/error.log log_errors = On
ここでは、PHP エラー ログを /var/log/php/error.log として指定し、エラーの記録を有効にします。フォルダーが作成され、適切な権限があることを確認してください。
結論
この記事では、nginx が PHP ファイルを解析できない理由と解決策をいくつか紹介しました。このような問題が発生した場合は、上記の手順に従って、PHP ファイルを処理できるように nginx を適切に設定してください。
以上がnginx が php ファイルを解析しない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。