2

我有一个来自 MediaTemple 的 DV 4.0。

当我运行需要循环超过 5000 次的 php 文件脚本时,出现“500 内部服务器错误”。

代码似乎是因为当我执行 200 次循环时,会打印结果。

我的“max_input_time”、“max_execution_time”、“default_socket_timeout”和所有其他 php 参数都不是问题(我猜,全部设置为 9000,memory_limit 为 -1)

我懂了:

[Sat Jan 11 19:25:22 2014] [notice] caught SIGTERM, shutting down

这是因为apache重新启动。我的问题是:如何在我的脚本中循环超过 5000 次而不会使我的系统崩溃;-)

谢谢

4

1 回答 1

6

您的问题是如何循环超过 5000 次。

循环 5000 或 500000000 次不是问题。你在其他地方有问题。

SIGTERM 用于重启 Apache(如果它在 init 中设置为自动重启):http ://httpd.apache.org/docs/2.2/stopping.html

您看到的日志条目应该在那里,因为 SIGTERM 就是为此目的。也许,apache 不会崩溃,但您的数据有问题或者执行时间用完了。

它可能是自定义 PHP 模块或代码。在发生故障时查看 apache 访问/错误日志。不要忘记打开错误日志记录。它可以帮助您确定哪里出了问题。开了吗?如果在开发模式下,总是打开错误报告!!!

如果它真的崩溃了,甚至没有提供静态内容,那么这听起来像是某种线程/连接耗尽问题。但是,您的代码似乎有问题并且您压制了错误。

如果您确定您的一侧/代码没有任何问题(如果它在另一个系统上运行),您可能需要重新安装 apache 和 php,它将解决任何损坏的文件或您错误地重新配置它。

于 2014-01-12T01:57:16.453 回答