PHP / MySQL:即使打开显示PHP错误,会导致白页的原因是什么?

时间:2014-07-30 04:41:52

标签: php mysql elastic-beanstalk rds

你不得不原谅我在这个问题上缺乏细节,因为我仍然想弄清楚会发生什么。

我知道可能没有直接的答案,但我能得到的任何帮助都会帮助我进一步调试问题。

我的问题是,我的PHP脚本会突然退出并显示白页。页面上没有PHP或MySQL错误,错误日志中没有错误。

问题发生在非常随机的时间。当它确实发生时,它会出现"当有大量MySQL查询同时运行时。当我说大的时候,发送电子邮件时可能会有几百个。如果发生大量进口,有时会有数千人。

上次发生此问题的时间是昨晚,当用户尝试发送118条短信时。在每个SMS排队并存储在存档中之后,将会有大约几百个查询。

我尝试在两个不同的场合尝试发送125和250条短信时尝试复制此问题。两者都很好。然后我尝试发送250条短信和250封电子邮件,并且工作正常。

我在我的PHP页面使用Amazon Elastic Beanstalk,在MySQL数据库使用RDS。

这听起来像是PHP还是MySQL问题?如果两个都没有在错误日志中给我任何东西,你有什么建议我可以做些什么来进一步调试这个?是否有其他隐藏日志或我应该开启的日志记录?

或者,我是否应该考虑使用MySQL或PHP设置来尝试解决此问题?

2 个答案:

答案 0 :(得分:1)

配置方:

首先,查看服务器的错误日志(它与PHP错误日志不同)。例如,apache有自己的日志文件,与不同模块/服务器消息的启动等有关.PHP的错误日志是一个单独的日志,所以如果那里没有消息 - 它没有任何意义。

其次,查看php.ini并查看您的日志设置 - 写入哪个级别的错误。

计划方:

首先,拆分代码,使其每次运行最多处理50条记录。重做您的脚本,使其运行并重新运行,直到执行所有必要的操作。

其次,查看时间/内存限制 - 它们是否足以执行您的操作?比如,发送邮件需要1秒,如果您的时间限制是30秒 - 您最多只能发送30封电子邮件。它与第一部分有关,因为您希望将任务划分为可以在提供的限制内安全执行的段。

答案 1 :(得分:0)

如果这有助于任何人,则该问题最终成为我的DNS提供商(路由S3)。即使我增加了对PHP(max_execution_time)的时间限制,我的DNS提供商的时间限制为60秒。因此,一旦60秒过去,它就会杀死它。这就是为什么我没有得到任何错误。

我已经增加了这个限制,但也会重新审视我的代码:)