我需要延長 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 上的任何設定。