Php 脚本何时结束而不显示原因?

Php 脚本何时结束而不显示原因?,php,shutdown,Php,Shutdown,我正在使用设置时间限制(60*60*24)的脚本来处理大量图像。但是在1k个图像左右(1或2分钟)之后,脚本停止,并且在命令行中不显示任何错误 我还使用了一个记录器,它在关闭时(通过使用register\u shutdown\u函数)将脚本引发的任何错误写入文件。但是当这个脚本停止时,什么也没写(它应该写一些东西,即使没有抛出错误。它可以完美地与任何其他脚本一起工作,在我遇到的任何其他情况下) Apache错误日志也没有显示任何内容 有什么想法吗 编辑:我的环境是Centos 5.5,使用PHP

我正在使用设置时间限制(60*60*24)的脚本来处理大量图像。但是在1k个图像左右(1或2分钟)之后,脚本停止,并且在命令行中不显示任何错误

我还使用了一个记录器,它在关闭时(通过使用register\u shutdown\u函数)将脚本引发的任何错误写入文件。但是当这个脚本停止时,什么也没写(它应该写一些东西,即使没有抛出错误。它可以完美地与任何其他脚本一起工作,在我遇到的任何其他情况下)

Apache错误日志也没有显示任何内容

有什么想法吗


编辑:我的环境是Centos 5.5,使用PHP5.3。

可能内存不足

ini_set('memory_limit', '1024M');

如果你能分配那么多,它可能会让你走。

它可能内存不足

ini_set('memory_limit', '1024M');

如果你能分配这么多,可能会让你走。

请确保你没有在安全模式下运行:


请确保您没有在安全模式下运行:


请注意,register\u shutdown\u功能并不保证每次都会执行相关功能。所以你不应该依赖它

要调试该问题,请检查PHP错误日志。(当您从控制台使用PHP时,它不是apache错误日志。请检查PHP.ini或ini_get('error_log')以了解它的位置。)

一种解决方案可能是在bash中编写一个简单的包装器脚本,执行该脚本,然后在脚本末尾执行您希望执行的操作

还请注意,PHP不计算花在外部非PHP活动上的时间,如网络调用、一些库函数、图像magick等。
因此,您设置的时间限制实际上可能比您预期的要长。

请注意,register\u shutdown\u函数并不保证每次都会执行相关函数。所以你不应该依赖它

要调试该问题,请检查PHP错误日志。(当您从控制台使用PHP时,它不是apache错误日志。请检查PHP.ini或ini_get('error_log')以了解它的位置。)

一种解决方案可能是在bash中编写一个简单的包装器脚本,执行该脚本,然后在脚本末尾执行您希望执行的操作

还请注意,PHP不计算花在外部非PHP活动上的时间,如网络调用、一些库函数、图像magick等。
因此,您设置的时间限制实际上可能比您预期的时间长得多。

请注意,您可以使用
set\u time\u limit(-1)
以确保脚本可以无限期运行。通过控制台直接在PHP上运行脚本。这将确保http隧道不会同时消亡,一些浏览器只是在一段时间内没有收到任何消息后将其杀死。@tomcatexodus:最好使用0-这意味着没有时间限制-1只是MAX_INT。虽然很大,但它仍然是一个限制。@Jason我正在使用console@MarcB尼托!我一直认为它是-1。作为注释,你可以使用
set\u time\u limit(-1)
以确保脚本可以无限期运行。通过控制台直接在PHP上运行脚本。这将确保http隧道不会同时消亡,一些浏览器只是在一段时间内没有收到任何消息后将其杀死。@tomcatexodus:最好使用0-这意味着没有时间限制-1只是MAX_INT。虽然很大,但它仍然是一个限制。@Jason我正在使用console@MarcB尼托!我一直使用并认为它是-1。此外,如果您使用的是共享主机,您的脚本可能已被托管提供商设置的一些自动检查杀死。此外,如果您使用的是共享主机,您的脚本可能已被托管提供商设置的一些自动检查杀死。