为什么 Apache 不能自动启动?

为什么 Apache 不能自动启动?

我在 Windows 7 电脑的 Cygwin 上运行 Apache2。它没有做太多事情,只是为我的本地(防火墙)LAN 托管一些 HTML 文档。

奇怪的是,虽然启动类型是自动,但它似乎无法自动启动。但是,当我手动启动它时,它运行正常。知道这是为什么吗?

  • Apache 版本(httpd2.exe -v):Apache/2.2.23 (Unix)
  • Cygwin 版本(uname -a):
    CYGWIN_NT-6.1-WOW64 (hostname removed) 1.7.27(0.271/5/3) 2013-12-09 11:57 i686 Cygwin

服务

在我的其他 Cygwin 服务进入运行状态的一系列事件中,有一个 Apache 进入停止状态的事件。例如:

事件查看器

我在应用程序日志中唯一能找到的内容如下:

无法找到来自源 httpd2 的事件 ID 0 的描述。引发此事件的组件未安装在您的本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复该组件。

如果事件源自另一台计算机,则显示信息必须与事件一起保存。

此次活动包含以下信息:

httpd2:PID 3384:`httpd2' 服务已停止,退出状态:1

/var/log/apache2/error_log有类似的东西仅在成功手动启动时

[Fri Jul 17 08:30:28 2015] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Jul 17 08:30:29 2015] [notice] Digest: generating secret for digest authentication ...
[Fri Jul 17 08:30:29 2015] [notice] Digest: done
[Fri Jul 17 08:30:29 2015] [warn] pid file /var/run/apache2/httpd2.pid overwritten -- Unclean shutdown of previous Apache run?
[Fri Jul 17 08:30:29 2015] [notice] Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/1.0.1e DAV/2 configured -- resuming normal operations

/var/log/httpd2.log有类似这样的内容:

(125)Cannot assign requested address: make_sock: could not bind to address <my_172._ip>:80
no listening sockets available, shutting down
Unable to open logs

答案1

httpd2.exe -t

上述命令将告诉您配置文件中可能存在的确切错误(带有行号)。

也可以尝试

httpd2.exe -k 卸载

进而

httpd2.exe -k 安装

这解决了我的问题

答案2

我偶然发现了类似的问题。确保可执行文件的属性中没有“此文件来自另一台计算机...”的警告。

如果是这种情况,请参阅“此文件来自另一台计算机...” - 我怎样才能解除对文件夹中所有文件的阻止,而不必单独解除对它们的阻止?

相关内容