為什麼 Apache 不自動啟動?

為什麼 Apache 不自動啟動?

我在 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

我偶然發現了類似的問題。確保可執行檔的屬性中沒有警告「此檔案來自另一台電腦...」。

如果是這種情況,請參考「此文件來自另一台電腦...」 - 如何取消封鎖資料夾中的所有文件,而不必單獨取消封鎖它們?

相關內容