详解php.ini超时时间的设置方法

PHPzhong
PHPzhong原创
2023-04-11 14:01:0823浏览

在使用 PHP 执行长时间运行的脚本时,我们经常遇到脚本运行时间过长的问题。当脚本运行时间超过预定的时间限制时,PHP 会自动终止脚本的执行,并返回错误信息。这个时间限制就是 PHP 的超时时间(timeout)。默认情况下,PHP 的超时时间是 30 秒。对于一些需要大量计算或者处理的脚本来说,这个时限可能远远不够,需要手动设置更长的超时时间。

下面介绍在 php.ini 文件中设置超时时间的方法。

  1. 找到 php.ini 文件的位置

在 Linux 系统中,可以使用如下命令查找 php.ini 文件的位置:

php -i | grep php.ini

命令执行后会显示 php.ini 文件的路径,例如:

Configuration File (php.ini) Path => /usr/local/php7/lib
Loaded Configuration File => /usr/local/php7/lib/php.ini

在 Windows 系统中,可以使用搜索工具查找 php.ini 文件。

  1. 打开 php.ini 文件

使用文本编辑器打开 php.ini 文件。注意:php.ini 文件通常是系统级别的配置文件,需要管理员权限。

  1. 找到并修改以下两个配置项
; Maximum amount of time each script may spend parsing request data.
; Default: 60
; Change: 600
max_input_time = 600

; Maximum execution time of each script, in seconds
; Default: 30
; Change: 300
max_execution_time = 300

一般情况下,修改以上两个配置项即可将 PHP 超时时间设置为 10 分钟。其中,

  • max_input_time 指 PHP 脚本最大的运行时间,以秒为单位。在这个时间内,脚本的输入数据必须被解析完毕。
  • max_execution_time 指 PHP 脚本的最大执行时间,以秒为单位。在这个时间内,脚本必须执行完毕,否则 PHP 引擎将终止脚本的执行。

需要注意的是,max_execution_time 的设置不能超过 PHP-FPM、Web 服务器、操作系统等其他组件的限制。如果这些组件的限制时间更短,那么超时时间也将被限制在更短的时间内。

  1. 保存并重新启动 PHP

修改完 php.ini 文件后,保存并重启 PHP。

在 Linux 系统中可以使用命令:

sudo systemctl restart php-fpm

在 Windows 系统中可以在命令行中输入:

iisreset

或者,在服务管理器中重启 IIS 服务。

经过以上操作,我们就可以将 PHP 的超时时间设置为我们需要的时间了。当然,设置太长的超时时间也会对服务器的性能带来一定压力,需要根据实际情况和需求进行合理设置。

以上就是详解php.ini超时时间的设置方法的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。