我需要延长 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 上的任何设置。