我目前正在尝试寻找一种解决方法,以防止PHP脚本在使用ZipArchive类创建.zip时超时。
通过使用set_time_limit()重写php.ini中的最大脚本执行时间,我成功地做到了这一点。然而,不能保证在运行该脚本的服务器上的php.ini内部会关闭安全模式,并且我没有访问php.ini文件的权限。有没有其他方法可以阻止脚本超时?ZipArchive可以作为后台任务运行吗?
发布于 2017-11-19 10:40:27
我认为超时不是问题。这将由max_execution_time的ini_set来解决。但是内存限制是个问题。我没有遇到关于创建5.8G目录的zip文件的超时问题。但是我遇到了内存限制的问题。
发布于 2015-04-08 20:07:39
试一试
ini_set('max_execution_time', 60); //60 seconds = 1 minute
ini_set('max_execution_time', 0); //0=NOLIMIT但是,在共享主机上可能设置了一些限制,因此如果这些功能不能正常工作,请咨询服务器的管理员。
发布于 2017-02-27 04:05:38
我也在试着解决这个问题,set_time_limit在安全模式下的共享主机上不好用,或者在服务器上被禁用。
我正在使用Ajax客户端对PHP的调用来逐步处理归档,但是这也带来了一些新问题。脚本超时和某种类型的“检查点”,这样我就可以继续继续操作。
因此,我的建议是使用ajax/客户端实现来调用php来完成工作,知道脚本可能不会在一次调用中完成,但可能需要N个调用,虽然在PHP中一个操作可能需要足够长的时间来超时脚本,但您仍然可以将逻辑放入以检查已用时间,并尝试在超时之前保存状态,并在客户端中涵盖超时/手动踢出这两种情况。
https://stackoverflow.com/questions/29513245
复制相似问题