
在使用 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 的超时时间设置为我们需要的时间了。当然设置太长的超时时间也会对服务器的性能带来一定压力需要根据实际情况和需求进行合理设置。