我的php脚本正好在120秒后停止


my php script stops exactly after 120 seconds

我正在使用codeigniter,同时我正在逐行将表数据导入到mysql表中,其中表中的行数超过25000,因此从一个表读取并插入另一个表需要时间。

我注意到,每次我运行我的脚本时,如下所示:http://domain.local/importdata它在导入一些行之后停止脚本,并且在检查其执行时间之后,它总是精确地停止120秒。

我尝试设置_time_limit(0);但是没有用,它在120秒后停止。

在phpinfo()中,它显示默认的max_execution_time是300。

此外,我正在windows机器上使用zend服务器。

提前谢谢。

首先,您应该使用的函数是set_time_limit()。

假设这只是一个拼写错误,您的服务器管理员可能已经对服务器进行了限制。这意味着你不能超过这个极限。想象一下,如果你在某个地方有一个无休止的循环,你的代码永远不会超时。要进行验证,请尝试使用set_time_limit(0)并执行phpinfo()。您将在输出中看到两个值。在最右边的一列中是PHP配置中的主值,另一列是优先的本地值。

Zend手册提到,您不应该将它用于执行时间长的文件。按照有关如何将文件列入黑名单的说明进行操作。此外,如果您使用的是Apache,请在etc目录的zendenabler.conf中检查RequestTimeout和ConnectionTimeout。我认为它停止的原因不是因为PHP,而是因为Apache或Zend。

如果您在Windows上使用Zend Server,这可能会解决您的问题:

Zend服务器帮助:configuring_php_timeouts_under_windows_apache

120秒也是常见的浏览器超时时间。