你不得不原谅我在这个问题上缺乏细节,因为我仍然想弄清楚会发生什么。
我知道可能没有直接的答案,但我能得到的任何帮助都会帮助我进一步调试问题。
我的问题是,我的PHP脚本会突然退出并显示白页。页面上没有PHP或MySQL错误,错误日志中没有错误。
问题发生在非常随机的时间。当它确实发生时,它会出现"当有大量MySQL查询同时运行时。当我说大的时候,发送电子邮件时可能会有几百个。如果发生大量进口,有时会有数千人。
上次发生此问题的时间是昨晚,当用户尝试发送118条短信时。在每个SMS排队并存储在存档中之后,将会有大约几百个查询。
我尝试在两个不同的场合尝试发送125和250条短信时尝试复制此问题。两者都很好。然后我尝试发送250条短信和250封电子邮件,并且工作正常。
我在我的PHP页面使用Amazon Elastic Beanstalk,在MySQL数据库使用RDS。
这听起来像是PHP还是MySQL问题?如果两个都没有在错误日志中给我任何东西,你有什么建议我可以做些什么来进一步调试这个?是否有其他隐藏日志或我应该开启的日志记录?
或者,我是否应该考虑使用MySQL或PHP设置来尝试解决此问题?
答案 0 :(得分:1)
配置方:
首先,查看服务器的错误日志(它与PHP错误日志不同)。例如,apache有自己的日志文件,与不同模块/服务器消息的启动等有关.PHP的错误日志是一个单独的日志,所以如果那里没有消息 - 它没有任何意义。
其次,查看php.ini并查看您的日志设置 - 写入哪个级别的错误。
计划方:
首先,拆分代码,使其每次运行最多处理50条记录。重做您的脚本,使其运行并重新运行,直到执行所有必要的操作。
其次,查看时间/内存限制 - 它们是否足以执行您的操作?比如,发送邮件需要1秒,如果您的时间限制是30秒 - 您最多只能发送30封电子邮件。它与第一部分有关,因为您希望将任务划分为可以在提供的限制内安全执行的段。
答案 1 :(得分:0)
如果这有助于任何人,则该问题最终成为我的DNS提供商(路由S3)。即使我增加了对PHP(max_execution_time)的时间限制,我的DNS提供商的时间限制为60秒。因此,一旦60秒过去,它就会杀死它。这就是为什么我没有得到任何错误。
我已经增加了这个限制,但也会重新审视我的代码:)