ホームページ >バックエンド開発 >PHPの問題 >nginx が php ファイルを解析しない場合の対処方法

nginx が php ファイルを解析しない場合の対処方法

PHPz
PHPzオリジナル
2023-04-18 10:18:341195ブラウズ

nginx は、Web アプリケーションで動的コンテンツをレンダリングするために PHP とともによく使用される高性能 Web サーバーです。ただし、場合によっては、nginx が PHP ファイルを正しく解析できず、アプリケーションが適切に実行できなくなることがあります。この記事では、nginx が PHP ファイルの解析に失敗する原因となるいくつかの一般的な問題を調査し、解決策を提供します。

  1. 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 設定ファイルと一致していることを確認してください。

  1. index.php ファイルが設定されていません

Web アプリケーションのホームページが Index.php であるが、nginx で自動的に処理されない場合は、次の内容を追加する必要があります。次のように、nginx 設定ファイルの「index」ディレクティブにindex.phpを追加します。

index index.php index.html;

これで、ホームページを開くと、nginxは自動的にindex.phpを検索し、正しく処理します。

  1. PHP ファイルのアクセス許可

nginx が PHP ファイルを解析できないもう 1 つの主な理由は、アクセス許可が正しくないことです。次のことを確認してください:

  • PHP ファイルの権限は 644
  • PHP ファイルが配置されているディレクトリの権限は 755

また、PHP ファイルの所有権が nginx ユーザーに設定され、PHP ファイルが配置されているディレクトリの所有権が nginx グループに設定されていることを確認してください。これは、次のコマンドを使用して実現できます。

sudo chown -R nginx:nginx /var/www/html/

ここでは、/var/www/html/ ディレクトリの所有権を nginx ユーザーとグループに割り当てます。

  1. PHP モジュールが有効になっていません

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/ を追加しました。

  1. PHP エラー ログ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。