用于检查 Apache 配置的命令

Sig*_*ran 223 configuration apache2

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

小智 332

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

apachectl configtest
Run Code Online (Sandbox Code Playgroud)

  • 在您的 apache 配置中添加一行“ServerNamewhatyoulike”。用您喜欢的名称替换您喜欢的任何名称。 (2认同)
  • 可能需要 sudo 吗? (2认同)

小智 49

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

  • 奇怪的是,在 Ubuntu 上,当我运行 `apachectl configtest` 时,我得到 `Syntax OK`,但是当我运行 `apache2 -t` 时,我得到 `AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf` (其中其他错误) (4认同)

小智 9

apachectl configtest是正确答案。不幸的是,我有一个缺少 apachectl 的 Windows 安装。在这里打电话httpd也有帮助。


小智 5

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

此类故障的常见原因包括 SSL 证书丢失或无法访问、日志文件目录丢失或网站根目录丢失。通常,此类错误是由删除 vhost 的目录而不删除 vhost Apache 配置文件引起的。强烈建议使用像 puppet 或 ansible 这样的工具来防止这种不一致。

看到这个问题是谷歌搜索“apache config lint”时的第一个问题,我想我会提到这个小细节......

  • 我写过这样一个脚本。如果我花时间把它放到github上,会有人使用吗?它专门检查 SSL 配置、文件是否位于正确的位置以及使用 openssl 进行模数匹配等。 (2认同)