ホームページ  >  記事  >  バックエンド開発  >  php504エラーの解決方法

php504エラーの解決方法

王林
王林オリジナル
2020-06-30 13:48:258114ブラウズ

php504 エラーの解決策: 1. fastcgi プロセスの応答のバッファー サイズを増やす; 2. php 環境設定を変更し、php-cgi プロセス処理スクリプトのタイムアウトを増やす; 3. php504 エラーの処理方法を変更するphp-fpm Apacheモードに変更します。

php504エラーの解決方法

解決策は次のとおりです:

シナリオ 1:

nginx のデフォルトのバッファ応答が原因fastcgi プロセスが小さすぎることが原因でエラーが発生する

解決策:

一般に、デフォルトの fastcgi プロセスの応答バッファーは 8K です。この場合、より大きく設定できます。 、 fastcgi_buffers 8 128k を追加します。これは、fastcgi バッファーを 128k スペースの 8 ブロックに設定することを意味します。

もちろん、特定のリアルタイム操作を実行している場合は、nginx のタイムアウト パラメーターを増やす必要がある場合があります。たとえば、60 秒に設定します: send_timeout 60; これら 2 つのパラメーターを調整した後、通常は「504 Gateway Time-out」エラーは表示されなくなり、問題は基本的に解決されます。

シナリオ 2:

PHP 環境の構成の問題

Web サイトでは、php-fpm と nginx の構成を変更する必要がある場合があります。この場合、「504 Gateway Time-out」エラー メッセージも表示されるためです。このとき、Nginx 504 Gateway Time-out の意味は、要求されたゲートウェイが要求されていないことを意味しており、簡単に言うと、実行可能な PHP-CGI が要求されていないことを意味します。

解決策:

php-fpm の構成をいくつか変更するだけです:

max_children を以前の 10 から現在の 30 に変更して、十分な数が確保されるようにします。 php-cgi プロセスを使用できます。

request_terminate_timeout を以前の 0 秒から 60 秒に変更して、php-cgi プロセスがスクリプトを処理するタイムアウト時間が 60 秒になるようにします。これにより、プロセスが中断されるのを防ぐことができます。そして利用効率を向上させます。

次に、nginx のいくつかの設定項目を変更して FastCGI リクエストの数を減らし、バッファを変更しないようにします:

fastcgi_buffers は 4 64k から 2 256k に変更されます;

fastcgi_buffer_size が 64K から 128K に変更されました;

fastcgi_busy_buffers_size が 128K から 256K に変更されました;

fastcgi_temp_file_write_size が 128K から 256K に変更されました。

php-fpm と nginx の設定をリロードして再度テストし、「504 Gateway Time-out」エラーが表示されなければ、問題は解決しています。

シナリオ 3:

php-fpm のデフォルトの静的処理メソッドにより、php-cgi プロセスが長時間メモリを占有し、解放できなくなり、504 エラーが発生します。エラー。

解決策:

php-fpmの処理方法をApacheモードに変更します。

さらに関連する知識を知りたい場合は、php 中国語 Web サイト にアクセスしてください。

以上がphp504エラーの解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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