在使用 php 执行长时间运行的脚本时,我们经常遇到脚本运行时间过长的问题。当脚本运行时间超过预定的时间限制时,php 会自动终止脚本的执行,并返回错误信息。这个时间限制就是 php 的超时时间(timeout)。默认情况下,php 的超时时间是 30 秒。对于一些需要大量计算或者处理的脚本来说,这个时限可能远远不够,需要手动设置更长的超时时间。
下面介绍在 php.ini 文件中设置超时时间的方法。
找到 php.ini 文件的位置在 linux 系统中,可以使用如下命令查找 php.ini 文件的位置:
php -i | grep php.ini
命令执行后会显示 php.ini 文件的路径,例如:
configuration file (php.ini) path => /usr/local/php7/libloaded configuration file => /usr/local/php7/lib/php.ini
在 windows 系统中,可以使用搜索工具查找 php.ini 文件。
打开 php.ini 文件使用文本编辑器打开 php.ini 文件。注意:php.ini 文件通常是系统级别的配置文件,需要管理员权限。
找到并修改以下两个配置项; maximum amount of time each script may spend parsing request data.; default: 60; change: 600max_input_time = 600; maximum execution time of each script, in seconds; default: 30; change: 300max_execution_time = 300
一般情况下,修改以上两个配置项即可将 php 超时时间设置为 10 分钟。其中,
max_input_time 指 php 脚本最大的运行时间,以秒为单位。在这个时间内,脚本的输入数据必须被解析完毕。max_execution_time 指 php 脚本的最大执行时间,以秒为单位。在这个时间内,脚本必须执行完毕,否则 php 引擎将终止脚本的执行。需要注意的是,max_execution_time 的设置不能超过 php-fpm、web 服务器、操作系统等其他组件的限制。如果这些组件的限制时间更短,那么超时时间也将被限制在更短的时间内。
保存并重新启动 php修改完 php.ini 文件后,保存并重启 php。
在 linux 系统中可以使用命令:
sudo systemctl restart php-fpm
在 windows 系统中可以在命令行中输入:
iisreset
或者,在服务管理器中重启 iis 服务。
经过以上操作,我们就可以将 php 的超时时间设置为我们需要的时间了。当然,设置太长的超时时间也会对服务器的性能带来一定压力,需要根据实际情况和需求进行合理设置。
以上就是详解php.ini超时时间的设置方法的详细内容。