Port

無法停止埠 80 上的不可見套接字

  • September 26, 2017

我想執行我的 Apache 伺服器,但出現此錯誤:

# /usr/sbin/httpd -k start
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs

我使用 netstat 檢查哪個程序正在使用此埠,但沒有得到響應:

# netstat -lnp | grep :80
#

在 httdp.conf 中,如果我更改監聽埠和 SSL 埠,我可以正確啟動我的伺服器(但這不是我想要的):

Listen 8080
Listen 8443 https

我得到:

# /usr/sbin/httpd -k start
#

所以有一個不可見的程序在我的 80 和 443 埠上執行,我無法辨識它。我還重新啟動了伺服器,問題仍然存在。有任何想法嗎?


要回答評論中的問題:

# grep -R 'Listen' /etc/httpd
Binary file /etc/httpd/modules/mod_heartmonitor.so matches
Binary file /etc/httpd/modules/mod_pagespeed_ap24.so matches
Binary file /etc/httpd/modules/mod_mpm_prefork.so matches
Binary file /etc/httpd/modules/mod_mpm_event.so matches
Binary file /etc/httpd/modules/mod_pagespeed.so matches
Binary file /etc/httpd/modules/mod_mpm_worker.so matches
/etc/httpd/conf.d/mod_jk.conf:Listen *:80
/etc/httpd/conf.d/mod_jk.conf:Listen *:443
/etc/httpd/conf.d/ssl.conf:Listen 443 https
/etc/httpd/conf/httpd.conf:# Listen: Allows you to bind Apache to specific IP addresses and/or
/etc/httpd/conf/httpd.conf:# Change this to Listen on specific IP addresses as shown below to
/etc/httpd/conf/httpd.conf:#Listen 12.34.56.78:80
/etc/httpd/conf/httpd.conf:Listen 80

可能是Listen您的主要 httpd.conf 中包含多個指令以及從中包含的子部分conf.d/*.conf和類似的子部分。

重疊的 Listen 指令將導致致命錯誤,從而阻止伺服器啟動。

引用自:https://serverfault.com/questions/875500