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.ini 中手動設定最大輸入和執行時間,而不是嘗試覆蓋 php-fpm 或 nginx 上的任何設定。

相關內容