我正在寻找一个命令来检查Debian和RHEL发行版上Apache服务器中配置文件的有效性。我需要在重新启动之前执行此操作,因此不会出现停机时间。

#1 楼

检查:http://httpd.apache.org/docs/2.2/programs/apachectl.html

apachectl configtest


评论


我收到运行上述命令AH00558的消息:apache2:无法使用127.0.1.1可靠地确定服务器的标准域名。全局设置“ ServerName”指令以禁止显示此消息

–Ciasto piekarz
16年9月15日在16:18

在您的apache配置中添加一行“ ServerName anyyoulike”。用您喜欢的服务器名称替换任何您喜欢的名称。

–坑
16/09/26'6:48

可能需要sudo吗?

–米格尔
17 Mar 29 '17 at 10:29

#2 楼

另一种方法是httpd -t。因此,它在Windows版本的Apache中可用。检查http://httpd.apache.org/docs/2.4/programs/httpd.html

评论


奇怪的是,在Ubuntu上,当我运行apachectl configtest时,语法正确,但是当我运行apache2 -t时,我得到AH00526:/etc/apache2/apache2.conf的第74行的语法错误(除其他错误外)

–瓶Butkus
18/12/8在2:02

#3 楼

apachectl configtest是正确的答案。
不幸的是,我在Windows安装中缺少apachectl。
这里打电话给httpd也可以。

#4 楼

Apache配置测试(apachectl configtest或其等效项)仅测试配置文件(及其递归包括的文件)的有效语法。但是,最初的问题要求防止停机。即使apachectl configtest没有返回错误,实际的重新启动仍然可能失败,从而导致停机。

此类失败的常见原因包括SSL证书丢失或无法访问,日志文件目录丢失或网站根目录丢失。通常,此类错误是由删除虚拟主机的目录而不删除虚拟主机Apache配置文件引起的。强烈建议使用诸如puppet或ansible之类的工具来防止此类不一致。 ...

评论


有没有一种方法可以测试上述常见故障原因?

– Vishal
9月22日0:59

这将需要一个脚本,该脚本解析apache配置并实现缺少的检查。我不知道有没有免费的脚本可以这样做。

–BertD
9月22日12:26

#5 楼

我通常要做的是
apache2ctl -t && apache2ctl graceful