我正在寻找一个命令来检查 Debian 和 RHEL 发行版中 Apache 服务器配置文件的有效性。我需要在重启之前执行此操作,这样就不会停机。
答案1
查看:http://httpd.apache.org/docs/2.2/programs/apachectl.html
apachectl configtest
答案2
另一种方法是httpd -t
。因此,它在 Windows 版本的 Apache 中可用。检查http://httpd.apache.org/docs/2.4/programs/httpd.html
答案3
Apache 配置测试(apachectl configtest
或其等效项)仅测试配置文件(及其递归包含的文件)的语法是否有效。但是,最初的问题要求防止停机。即使apachectl configtest
不返回错误,实际重启仍可能失败,从而导致停机。
此类故障的常见原因包括 SSL 证书缺失或无法访问、日志文件目录缺失或网站根目录缺失。通常,此类错误是由于删除 vhost 的目录而未删除 vhost Apache 配置文件而导致的。强烈建议使用 puppet 或 ansible 等工具来防止此类不一致。
当我在谷歌搜索“apache config lint”时,看到这个问题是排名第一的,所以我想提一下这个小细节......
答案4
我通常会这样做
apache2ctl -t && apache2ctl graceful