我在使用 2000 個虛擬主機重新啟動 Apache 時遇到一些問題。
我在 CentOS 5.8 64 位元上使用 Apache 2.2.22 + PHP 5.4.6。
當我嘗試重新啟動時,它會顯示以下內容:
/etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]
當我killall -9 httpd
這樣做一段時間後,它又發生了:/
答案1
在我看來,Apache 一開始就沒有運行,至少沒有在 init 腳本啟動它的 PID 下運行。檢查(或在此處提供)“ps auxwww”的輸出。
我最強烈的直覺是,你的 apache 根進程正在死亡,讓子進程存活並監聽埠 80。
其他可能性:您可能有其他東西在 init 腳本之外手動啟動 apache,或者其他東西可能正在監聽連接埠 80(但這並不能解釋為什麼 Killall -9 httpd 起作用)。
答案2
這是包裹問題。我從 webtropic 倉庫獲得了 httpd。換成 Lxcenter 的,效果很好;)