Apache/PHP:内部服务器错误。无法追踪!这怎么可能呢?

Apache/PHP:内部服务器错误。无法追踪!这怎么可能呢?

我在 Raspberry Pi 3 上有一个运行 NextCloudPi (NCP) 的 Nextcloud 服务器。NCP 可以说是 Raspbian/Apache2/PHP/MariaDB 堆栈。它运行可靠多年。但最近我的 Nextcloud 死机了!它在页面加载时所做的只是报告:

Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.

真的吗?可以在服务器日志中找到更多详细信息?不是我做的。我已经尝试了所有方法,到处都找过了。这是我的强力方法:

首先,我通过 IP 本地访问服务器,确保排除所有代理。我可以通过全局域名访问我的服务器,但该域名是通过本地反向代理进行的,因此我可以定期随意通过内部 .lan 名称或 LAN IP 访问服务器,没有任何问题。一切都没有问题。已经工作多年了。

这是什么原因造成的?有点不知所措,但怀疑我用 ncp-update 进行了更新。不是 100% 确定。但这是一个候选。原因变得显而易见,因为无论是什么原因造成的,我都应该能够诊断出来。所以下面是原因:

我在 nextcloud 服务器上的 bash 终端上执行以下操作:

  1. 存储时间参考:touch /tmp/foobar
  2. 强制重新加载页面,就我而言https://192.168.0.14在 Firefox 中打开并按 CTRL+F5,页面重新加载,我看到上面的“内部服务器错误”
  3. 搜索自参考时间以来的任何文件系统变化:sudo find / -regextype posix-extended -regex "/(sys|srv|proc|dev)" -prune -o -newer /tmp/foobar

唉,这一切的结果是:

/run/sudo/ts/cirrus
/dev
/sys
/var/log/apache2/other_vhosts_access.log
/var/log/apache2/nc-access.log
/var/log/auth.log
/proc
/srv

简而言之,我看到的唯一更改的日志是访问日志和 sudo auth 日志。

怎么会这样?apache 怎么会发出内部服务器错误却没有留下任何错误日志?

发生了什么事?我能从中学到什么?

这是 Apache 还是 PHP 子系统在作怪?鉴于“更多详细信息可在服务器日志中找到。”显然是不真实的,我该怎么做才能对其进行更深入的诊断。

还要注意的是,ErrorLogs并没有被禁用,而且我确实会时不时地使用它们,但为了确保万无一失,

$ grep -R ErrorLog /etc/apache2/
/etc/apache2/apache2.conf:# ErrorLog: The location of the error log file.
/etc/apache2/apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
/etc/apache2/apache2.conf:ErrorLog ${APACHE_LOG_DIR}/error.log
/etc/apache2/sites-enabled/nextcloud.conf:    ErrorLog  /var/log/apache2/nc-error.log
/etc/apache2/sites-available/default-ssl.conf:      ErrorLog ${APACHE_LOG_DIR}/error.log
/etc/apache2/sites-available/nextcloud.conf:    ErrorLog  /var/log/apache2/nc-error.log

相关内容