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 上的任何设置。

相关内容