我在 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
我偶然发现了类似的问题。确保可执行文件的属性中没有“此文件来自另一台计算机...”的警告。
如果是这种情况,请参阅“此文件来自另一台计算机...” - 我怎样才能解除对文件夹中所有文件的阻止,而不必单独解除对它们的阻止?