我在 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
我遇到了完全相同的错误。我执行了以下步骤。
首先使用命令“httpd -k uninstall”卸载该服务(因为在我的情况下它已损坏)。(例如 cd path upto bin 之前安装 Apache 的位置)。
然后通过命令“httpd -k install”安装Apache服务。
您将得到如下错误: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"