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

标签 cakephp internal-server-error fpm

我的一些使用 Google Chrome 或 Firefox 的用户遇到内部服务器错误,一旦他们清除了我网站的缓存,错误就会消失。一年多前我遇到了这个问题,但切换到不同的主机“修复”了它,但现在问题又回来了。

这是最近所做的(不确定是否有任何一个,所有这些或都没有):

  • 升级 CakePHP(从 2.8.9 到 2.10.7)
  • 将 PHP 配置从默认的 php5.6 + CLI 和 php7.0 专用于 Web 角色更改为 php 7.0(这是必要的,以防止 fpm​​ 进程的套接字在重新启动时发生冲突和服务器崩溃)

  • 当然,我可以告诉我的用户清除他们的缓存,但我也想了解可能导致这种情况的原因或可能导致这种行为的潜在因素(由于只有一些用户受到影响,因此很难调试)。

    最佳答案

    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()到日志文件,以便只有您可以看到它。

    关于CakePHP 内部服务器错误仅针对某些用户,清除缓存后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48865749/

    相关文章:

    php - Nginx fastcgi 始终在响应中包含请求正文

    docker - 如何在Dockerfile中启动PHP7.0-FPM?

    php - 关联两个表

    php - 如何在 Cakephp 3 中调用 PDOStatement::nextRowset()

    php - 将数组传递给 CakePHP 中的 requestAction

    php - WordPress 永久链接更改引发 500 内部服务器错误

    CakePHP 在下拉列表中显示除 id 之外的其他字段

    php - WordPress fatal error : Allowed memory size of 536870912 bytes exhausted (tried to allocate 77 bytes) in wp-includes/wp-db. php 第 1832 行

    python - 使用 JSON 进行 POST 在 Postman 中有效,但在 Python 中无效

    php - Nginx + Php-Fpm = 404