我们有四个 Apache 实例,具有四个不同的 IP 地址,在 Azure 上的 Ubuntu 20.04 系统上运行。实例如下所示:
apache2 apache2-后缀1 apache2-后缀2 apache2-后缀3
自 7 月以来,我们一直在运行 Apache 2.4.48,没有出现任何问题。今天我们将 Apache 更新到 2.4.50。更新过程中没有出现任何错误。我们重新启动了 Apache,所有网站都运行正常。
但是,重启 Ubuntu 服务器后,只有主 Apache(apache2)实例启动。其他实例都出现如下错误:
[电子邮件保护]- Apache HTTP 服务器已加载:已加载(/lib/systemd/system/[电子邮件保护];已启用;供应商预设:已启用)
Active: failed (Result: exit-code) since Wed 2021-10-06 22:11:17 UTC; 19min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 816 ExecStart=/usr/sbin/apachectl start (code=exited, status=127)
10 月 06 日 22:11:17 服务器 systemd[1]:正在启动 Apache HTTP 服务器...
10月06日 22:11:17 服务器 apachectl[848]: /usr/sbin/apachectl: 174: /usr/sbin/apache2-suffix1: 未找到
10月06日 22:11:17 服务器 apachectl[816]: 操作‘启动’失败。
10 月 06 日 22:11:17 服务器 apachectl[816]: Apache 错误日志可能有更多信息。
10月06日 22:11:17 服务器 systemd[1]:[电子邮件保护]:控制进程已退出,代码=已退出,状态=127/n/a
10月06日 22:11:17 服务器 systemd[1]:[电子邮件保护]:失败,结果为“退出代码”。
10月6日 22:11:17 服务器 systemd[1]: 无法启动 Apache HTTP 服务器。
错误日志中没有任何内容,因为系统从未启动。任何帮助都值得感激。
答案1
我找到了答案。我查看了 Apache.org 上的文档,以了解 Apache 启动时应该发生什么。 中有一个/usr/sbin/
名为 的脚本apachectl
。在 2.4.48 版本中,第 78 行如下所示:
HTTPD=${APACHE_HTTPD:-usr/sbin/apache2}
在 2.4.49 及更高版本中,此行如下所示:
HTTPD=${APACHE_HTTPD:-usr/sbin/apache2$SUFFIX}
其中$SUFFIX
,其他 Apache 实例的名称。此变量设置 Apache 二进制文件的位置,因此附加后缀会使其查找不存在的目录。