通过命令行在 Windows 计算机上重新启动 Apache 时出错

通过命令行在 Windows 计算机上重新启动 Apache 时出错

我在 Windows 上执行命令行重新启动 Apache 时遇到问题。

我正在执行的重启命令是:

httpd.exe -k restart

我认为这是正确的,但我得到的答复是:

C:\Documents and Settings\Admin>httpd.exe -k restart
[Mon May 19 15:37:11.319818 2014] [mpm_winnt:error] [pid 2396:tid 1956] (OS 2)Th
e system cannot find the file specified.  : AH00436: No installed service named
"Apache2.4".

有什么方法可以防止这种情况发生?我不熟悉在 Windows 上运行 Apache。

先感谢您。

答案1

我遇到了完全相同的错误。我执行了以下步骤。

  1. 首先使用命令“httpd -k uninstall”卸载该服务(因为在我的情况下它已损坏)。(例如 cd path upto bin 之前安装 Apache 的位置)。

  2. 然后通过命令“httpd -k install”安装Apache服务。

  3. 您将得到如下错误:httpd: D:/set-up/Apache2.4.6/Apache2.4.6/Apache/conf/httpd.conf 第 37 行语法错误:ServerRoot 必须为有效目录。(将其替换为 Apache2.4 的解压路径 - “D:/set-up/Apache2.4.6/Apache2.4.6”)。将其替换为您的适当路径。

    4.使用此命令“httpd -k restart”重新启动 Apache。

答案2

重启操作会导致 Apache 重新加载并应用其配置,而不会真正重新启动进程或断开任何打开的客户端连接,从而导致所谓的“优雅重新加载”。您可以使用 Windows 任务管理器自行检查,Apache PID(进程 ID)在重启后不会改变。

然而,由该选项触发的任何操作-k(它们被称为信号),需要 Apache 服务存在于 Windows 服务列表中。因此,如果您看到此错误消息,则只有两个可能的原因:

您的 Apache 服务不存在

然后只需创建它

httpd.exe -h install

现在你应该能够发送重启信号了

httpd.exe -k restart

您的 Apache 服务有自定义名称

如果该服务存在,但具有自定义名称(例如“My Awesome Apache Service”),那么当您想要向其发送任何信号时,必须指定该名称。

因此,如果你已经安装了

httpd.exe -k install -n "My Awesome Apache Service"

你必须重新启动它

httpd.exe -k restart -n "My Awesome Apache Service"

相关内容