php504 エラーの解決策: 1. fastcgi プロセスの応答のバッファー サイズを増やす; 2. php 環境設定を変更し、php-cgi プロセス処理スクリプトのタイムアウトを増やす; 3. php504 エラーの処理方法を変更するphp-fpm Apacheモードに変更します。
解決策は次のとおりです:
シナリオ 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 サイトの他の関連記事を参照してください。