【问题标题】:Script randomly cuts off脚本随机截断
【发布时间】:2011-09-06 06:52:06
【问题描述】:

我制作了一个非常基本的网站,它采用一组图像 URL,对其进行压缩,然后返回压缩位置。问题是脚本有时会中断。

通常会发生以下一种情况:

  • 并非所有图片都被复制
  • 并非所有图片都被复制,最后一张图片的文件大小为 0
  • 有时 ajax 调用不会运行错误或成功回调

这是因为服务器只允许脚本执行一定的时间吗?它似乎确实适用于较少的图片。我能做些什么?

我有以下设置:

max_execution_time 10 10 最大文件上传 20 20 最大输入嵌套级别 64 64 max_input_time 10

另外,set_time_limit 被禁用。

我试过 ini_set('max_execution_time', 300);什么都没有改变

编辑:可能是一个非常愚蠢的问题,但是如果我在一定时间后执行另一个 PHP 页面,如果脚本不会在限制之前完成,它会改变什么吗?

【问题讨论】:

  • 查看您的错误日志,看看是否有任何关于执行时间或内存耗尽的错误。在 * 上搜索错误消息。如果没有结果,请使用错误消息更新您的问题。
  • 错误日志在哪里?对不起菜鸟问题。我使用 000webhost,我什么都找不到
  • error log 是 PHP 将脚本执行期间发生的任何错误写入的位置。
  • 如何查看它们?我对这些东西很不满意
  • 与您查看任何其他文本文件一样。如果你在机器上没有shell访问权限,也可以尝试file_get_contents日志文件在浏览器中显示。

标签: php


【解决方案1】:

我们可以查看您的代码,但如果只是脚本超时的情况,您可以使用以下行:

set_time_limit(0);

...取消时间限制,让脚本在自己的时间内完全执行。您应该在验证请求后立即调用它,然后再开始图像复制/压缩过程。

如果您在问题中发布一些代码,我会进一步更新我的答案。

【讨论】:

  • 你是什么意思?是不是已经没有时间限制了,还是不允许设置?
【解决方案2】:

您可以尝试两件事:

  1. 使用set_time_limit 增加执行时间限制。
  2. 通过 php.exe(作为控制台脚本)而不是通过 Web 服务器运行脚本;在这种情况下,默认没有时间限制。

【讨论】: