web-dev-qa-db-ja.com

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
John Tate

/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秒未満のリクエストでタイムアウトが発生することはありません。

0
Harikrishnan

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

1
ffflabs