我在 Windows 7 電腦上的 Cygwin 上執行 Apache2。它沒有做太多事情,只是為我的本地(有防火牆的)LAN 託管一些 HTML 文件。
奇怪的是,即使它的啟動類型是自動的,它似乎也不會自動啟動。但是,當我手動啟動它時,它運行得很好。知道為什麼會這樣嗎?
- 阿帕契版本 (
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
我偶然發現了類似的問題。確保可執行檔的屬性中沒有警告「此檔案來自另一台電腦...」。