PHP ゲートウェイのタイムアウト

PHP ゲートウェイのタイムアウト

PHP の実行時間を長くする必要があり、他にも問題がありそうです。すでに実行したと思っていましたが、最近インストールした WordPress からゲートウェイ タイムアウトがまだ発生しています。php-fpm プールには次の構成があります。

[john]
user = john
group = john

listen = 127.0.0.1:9002
listen.owner = www
listen.group = www

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

php_admin_value[max_execution_time] = 300
php_admin_value[max_input_time] = 120

構文は問題ありませんが、スクリプトが約 30 秒でタイムアウトするので、他に何を見逃したのか疑問に思います。やりすぎかもしれませんが、急いでいるので後で学習します。遠慮なく説明してください。ただし、この問題をブルート フォースで解決するために増やすことができるすべての値を誰かが教えてくれるとありがたいです。

答え1

/etc/php5/fpm/pool.d/www.conf に次の行を追加します。

request_terminate_timeout = 180

また、/etc/nginx/sites-available/default で、問題のサーバーのロケーション ブロックに次の行を追加します。

fastcgi_read_timeout 180;

ロケーション ブロック全体は次のようになります。

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 180;
    include fastcgi_params;
}

ここで、php-fpm と nginx を再起動すると、180 秒未満のリクエストではタイムアウトが発生しなくなります。

答え2

php-fpm または nginx の設定を上書きするのではなく、まずは php.ini で最大入力時間と実行時間を手動で設定します。

関連情報