为 PHP7 和 Nginx 设置 max_execution_time

Nim*_*buz 5 nginx php-fpm

我遵循了本指南并更新了值:

/etc/php/7.0/fpm/php.ini 并更改/添加:

max_execution_time = 300
Run Code Online (Sandbox Code Playgroud)

/etc/php/7.0/fpm/pool.d/www.conf以及和变化/补充一点:

php_admin_value[max_execution_time] = 300
Run Code Online (Sandbox Code Playgroud)

/etc/nginx/sites-available/example.com, 并在 cgi 部分添加:

fastcgi_read_timeout 300;
Run Code Online (Sandbox Code Playgroud)

...然后重新启动,但仍然:

# php -i | grep max_execution_time
max_execution_time => 0 => 0
Run Code Online (Sandbox Code Playgroud)

这是我网站的位置块:

location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.*)$;
    try_files $uri =404;
    fastcgi_keep_conn on;
    fastcgi_read_timeout 600;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Run Code Online (Sandbox Code Playgroud)

做错了什么?

Ter*_*nen 6

当您从命令行运行时php -i,它将使用您的 PHP CLI 客户端的配置设置,这些设置可能位于/etc/php/7.0/cli/php.ini.

如果要检查 PHP-FPM 的设置,请在 Web 根目录中创建一个包含以下内容的脚本:

<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)

然后转到浏览器中的脚本 URL。

另一种可行的方法是运行php -b 127.0.0.1:9000 -i,这将使 PHP CLI 连接到您的 FastCGI 服务器以执行命令。您可能需要根据您的配置更改地址。