我刚刚重启了 Apache,现在服务器已经宕机

我刚刚重启了 Apache,现在服务器已经宕机

我现在非常害怕。我害怕几分钟后我会接到上百人的电话,说网站无法使用。

当我重新启动服务器以使用以下命令更新 .conf 文件时,我正在终端更改一些配置文件:

/etc/init.d/apache2 graceful

运行该程序后,所有网站都无法运行,我不知道该怎么办。

根据日志文件,我收到大约 100 个错误。它们都以“PHP 通知”开头,大多数与“使用未定义常量”有关。此外,我刚刚与一位同事交谈,描述了我所做的事情,他注意到服务器上有两个 apache 安装,我重新启动了我们不使用的那个。

错误日志的内容如下(假设它是正确的错误日志):

[2011 年 1 月 5 日星期三 11:52:06] [通知] 已请求优雅重启,正在重启
警告:DocumentRoot [/u/apps/staging/antetr/current/public/] 不存在
[2011 年 1 月 5 日星期三 11:52:08] [警告] NameVirtualHost *:80 没有 VirtualHosts
(98)地址已在使用中:make_sock:无法绑定到地址 [::]:80
(98)地址已在使用中:make_sock:无法绑定到地址 0.0.0.0:80
没有可用的监听套接字,正在关闭
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志
(2)没有这样的文件或目录:apache2:无法打开错误日志文件/u/apps/production/madfilmdash/current/log/apache-error.log。
无法打开日志

最后更新:

好的,我修复了它。问题是(你们这些专家可能知道)它无法访问我工作的目录中的错误日志。我创建了一个空的错误日志文件并再次尝试重新启动命令,现在所有网站都恢复了……尽管我原来的问题仍然存在……

感谢所有提供建议的人,它们确实很有帮助,让我可以松一口气。

答案1

您的 apache 日志文件位置因系统而异。来自 cyberciti.biz:

  • RHEL / Red Hat / CentOS / Fedora Linux Apache 错误文件位置 - /var/log/httpd/error_log
  • Debian / Ubuntu Linux Apache 错误日志文件位置 - /var/log/apache2/error.log
  • FreeBSD Apache 错误日志文件位置 - /var/log/httpd-error.log

将来,请在编辑 .conf 文件之前对其进行备份,并以更改的日期戳命名,以便在最坏的情况下,您可以恢复到以前的版本,或者只注释掉更改的行并为新行添加注释,以便您可以跟踪何时以及为什么更改了内容。如果编辑时没有办法返回,那么肯定会招致坏运气。

答案2

进入 apache 安装文件夹并查找“logs”,然后查找 error_log 或 error.log。它应该能让您了解问题出在哪里。

如果尚未打开,您可以在 httpd.config 中将其打开。

在 *nix 中,它通常位于 [apacheroot]/logs/httpd/error_log

在 Windows 中,它默认为 [apacheroot]/logs/error.log

答案3

尝试查看错误日志。在大多数 Linux 系统上,错误日志位于 /var/log/httpd/error_log。

在编辑配置文件之前,您确实保存了备份,对吗?如果您需要快速修复,您可以将配置文件恢复到更改之前的状态,然后重新启动服务器。

相关内容