CakePHP内部服务器仅对某些用户出错,清除缓存后消失

时间:2018-02-19 11:59:10

标签: cakephp internal-server-error fpm

我的一些使用Google Chrome或Firefox的用户遇到内部服务器错误,一旦他们清除了我的网站的缓存,错误就会消失。我在一年多前遇到过这个问题,但转向另一个主机"固定"它,但现在问题又回来了。

以下是最近完成的事情(不确定是否有任何一个,全部或全部都没有):

  • 升级的CakePHP(从2.8.9升级至2.10.7)
  • 将PHP Config从php5.6更改为默认+ CLI和php7.0专用于Web角色到php 7.0的所有内容(这是防止fpm进程的套接字在重新启动时发生冲突和崩溃所必需的)< / LI>

当然我可以告诉我的用户清除他们的缓存,但我也想了解可能导致此问题的原因或可能导致此行为的可能性(由于只有部分用户受到影响,因此很难调试)

2 个答案:

答案 0 :(得分:3)

1 - 检查您的日志。如果没有任何错误日志,则启用服务器上的日志记录。查看https://book.cakephp.org/3.0/en/core-libraries/logging.html以使用CakePHP日志记录,或检查服务器的文档以启用服务器上的日志记录。

2 - 您可以尝试使用try / catch块将错误发送给用户,然后用户可以向您提供更具体的错误消息。进入主PHP文件并将所有内容包装在

try { 
  ...... (your PHP code here) ......
} catch(Exception $e) {
   die($e->getMessage());
}

如果错误与PHP可以捕获的异常有关,则错误消息将回显给用户。如果您不想将其回显给用户(可能存在一些安全问题),那么您可以将$e->getMessage()写入日志文件,以便只有您才能看到它。

答案 1 :(得分:1)

PHP会话似乎是错误的:

  • 当用户清除其Cookie时,它会被修复,并且可能在更新PHP版本时发生。
  • 某些会话错误仅在确定的时间后发生,可能更随机。
  • 它可能出现在代码的任何一点(这可能会使调试更加困难!)。
  • 修正了托管时的问题。(新服务器意味着新的或默认的会话配置)

    修改您的PHP会话配置和CakePHP会话配置(可能将其添加到问题可能有帮助)。 ¿您使用的是Memcached还是类似的?