在使用 PHP 执行长时间运行的脚本时,我们经常遇到脚本运行时间过长的问题。当脚本运行时间超过预定的时间限制时,PHP 会自动终止脚本的执行,并返回错误信息。这个时间限制就是 PHP 的超时时间(timeout)。默认情况下,PHP 的超时时间是 30 秒。对于一些需要大量计算或者处理的脚本来说,这个时限可能远远不够,需要手动设置更长的超时时间。
下面介绍在 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 文件。
使用文本编辑器打开 php.ini 文件。注意:php.ini 文件通常是系统级别的配置文件,需要管理员权限。
; 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 服务器、操作系统等其他组件的限制。如果这些组件的限制时间更短,那么超时时间也将被限制在更短的时间内。
修改完 php.ini 文件后,保存并重启 PHP。
在 Linux 系统中可以使用命令:
sudo systemctl restart php-fpm
在 Windows 系统中可以在命令行中输入:
iisreset
或者,在服务管理器中重启 IIS 服务。
经过以上操作,我们就可以将 PHP 的超时时间设置为我们需要的时间了。当然,设置太长的超时时间也会对服务器的性能带来一定压力,需要根据实际情况和需求进行合理设置。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!