如何使用 Apache For Windows 执行“apachectl configtest”的等效操作?

如何使用 Apache For Windows 执行“apachectl configtest”的等效操作?

我很困惑,在任何地方都找不到答案。

我的笔记本电脑上安装了适用于 Windows 的 Apache 2.2。这样,当我在网站上工作时,服务器端包含功能就可以正常工作 - 即使我没有连接到互联网。

这曾经有效:

http://example.brak

但是当我添加新域名时,我完全破坏了一些东西。

我使用 hosts 文件来解析“.brak”域上的主机的 IP 地址

127.0.0.1  example.brak

每个 *.brak 主机都会应答 ping。

每个盒子都有自己的 TLD,使我能够从我公寓中的任何盒子访问我的每个本地站点。

这应该在 Cygwin 中工作:

$ /cygdrive/c/Apache22/bin/httpd -k start -n Apache2.2

或者在命令提示符中:

c:\> \Apache22\bin\httpd -k start -n Apache2.2

(必须使用httpd -k install将 httpd 设置为 Windows 服务。)

任务管理器显示服务已启动但很快就停止了。

这肯定是我破坏配置的结果,但 httpd 退出时除了错误状态 1 之外没有其他消息。

要查找上一个命令的状态:

c:\> dir
c:\> echo %errorlevel%
0

我永远感激您。

答案1

apachectl configtestApache 在 Windows 上的对应版本是什么?

根据目前Apache 2.4 apachectl 文档configtest相当于httpd-t 服务。作为参考,httpd -t允许您:

仅对配置文件运行语法测试。程序在这些语法解析测试后立即退出,返回代码为 0(语法正常)或返回代码不等于 0(语法错误)。如果还设置了 -D DUMP_VHOSTS,则会打印虚拟主机配置的详细信息。如果设置了 -D DUMP_MODULES,则会打印所有已加载的模块。

两者的配置错误httpd配置文件并且任何虚拟主机文件通常也会被手动、非服务管理器服务启动捕获(httpd -k start前任。

两个单独的命令行 Apache 测试选项的屏幕截图。每个命令都已在 Apache bin 目录中执行。第一个命令写为 HTTPD dash k start。第二个命令写为 HTTPD dash T。每个命令的输出都显示检测到了相同的示例语法错误。

您需要在尝试之前停止任何正在运行的 Apache 服务httpd -k starthttpd -t应该没有这样的要求)。


请注意,虽然问题与 Apache 2.2 有关,但是2.2 和 2.4 版本之间的一般文档apachectl configtest并没有改变。httpd -t


我的笔记本电脑上安装了适用于 Windows 的 Apache 2.2。

截至撰写本文时,Apache 2.2 已正式终止使用。截至 2018 年 1 月 1 日:

Apache HTTP 服务器项目已停止对 2.2.x 系列版本的所有开发和补丁审查 [...] 并且不会发布针对 2.2.x 版本的安全风险的进一步评估。

如果您没有令人信服的理由坚持使用 2.2 版本(例如,它供个人使用并且您不需要某些专门的模块等),您可能需要认真考虑升级。

我推荐原生的(非 Cygwin)Apache Lounge 的 Windows 版本。它们通常与最新的 Apache 基金会官方版本保持同步(或紧随其后),并且拥有一系列常用可选模块。

(附带说明一下,从 2.2 版升级到 2.4 版将需要对配置文件进行一些小的语法更改,但不会有什么大的变化)。

答案2

虽然这并没有真正回答我的配置测试问题,但我能够通过查看以下内容确定为什么 httpd 无法启动:

c:\Apache2.2\logs\error.log

有很多重复的内容:

 (OS 3)The system cannot find the path specified.  : httpd.exe: could not open error log file C:/cygwin64/home/Thunderball/_Websites/Soggy/logs/error.log.
 Unable to open logs

回到 cygwin 我得到一个坏消息:我的主目录中除了一个文件夹之外的所有文件夹都不再存在!

我真倒霉。:-(

我最近发现我的 Acer 硬盘出现故障。我无法在历史记录中找到任何可能意外丢失所有数据的内容。

也许现在正是停止使用 Acer 的好时机。我基本没问题,因为我有很好的备份,家里还有一台 Mac mini。在我完成当前合同的项目之前,我无法购买替换驱动器。在那之前,我会有点缺钱。

我对我的 Acer Aspire E 15 非常满意,所以我将要更换其驱动器,很可能是更换 SSD,以及更换严重划伤的屏幕。

答案3

我们可以在 Linux(Ubuntu、CentOs 等)上检查同样的东西,如果是 XAMPP/LAMPP 安装,您可以使用以下命令:

/opt/lampp/bin/apachectl -t 在 Windows 上 httpd-t 服务

相关内容