由於伺服器連接埠配置問題,無法啟動 HTTPD

由於伺服器連接埠配置問題,無法啟動 HTTPD

我的httpd.conf顯示它正在偵聽連接埠 80。

#Listen 12.34.56.78:80
Listen 80

但是我的虛擬主機顯示連接埠 443,我該如何更改?這是我問題的根源嗎?

更新

'虛擬主機預設:443' = /etc/httpd/conf.d/ssl.conf

這告訴我虛擬主機是正確的。我覺得我可以從這個場景中刪除所有與 443 相關的資訊來得到答案。

/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443
/etc/httpd/conf.d/ssl.conf.rpmnew:Listen 443 https
/etc/httpd/conf.d/ssl.conf.rpmnew:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf.rpmnew:#ServerName www.example.com:443

這是

Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.

我正在努力學習類似的線程。我使用的是 Fedora,所以我的理解有點不同。

systemctl status httpd.service說:

httpd[1182]: AH00526: Syntax error on line 18 of /etc/httpd/conf.d/ssl.conf:

18 號線說 |聽80

httpd[1182]: Cannot define multiple Listeners on the same IP:port

systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE

systemd[1]: httpd.service: Failed with result 'exit-code'.

systemd[1]: Failed to start The Apache HTTP Server.

/etc/httpd/conf.d.ssl.conf | 第 18 行Listen 80

這就是我感到困惑的地方,因為grep '443' /etc/httpd/conf.d/* 我的文件顯示ssl.conf為 443,但當我閱讀httpd.conf文件時,我看到這裡12.34.56.78:80是一個預防性 IP。因此我應該在這裡添加我的機器 IP 並監聽 80 和 443。

答案1

該錯誤似乎表明您Listen的 Apache 設定檔中可能有多個指令指定相同的 IP/連接埠 80 組合。

Listen(作為一般規則)應該只在httpd.conf(例如 as Listen 80)和預設 SSL 配置(例如 as Listen 443)中出現一次。

Listen雖然同一連接埠(例如 80)上可以有多個指令,但它們都必須具有不同的 IP:連接埠組合。

Listen因此我應該在此處以及80 和 443 上添加我機器的 IP 。

阿帕契指令可以採用兩種通用形式:「每個 IP」和「全域」(所有可用 IP):

# Per IP
# Listen 12.34.56.78:80

# Global (i.e includes ex. 12.34.56.78)
Listen 80

上面的配置有效。類似下面的內容通常也可以運作(假設您的系統有多個 IP):

# Per IP
Listen 12.34.56.78:80
Listen 23.56.78.90:80

# Global (i.e includes ex. 12.34.56.78)
# Listen 80

這可能不起作用(即 Apache 將無法啟動):

# Per IP
Listen 12.34.56.78:80

# Global (i.e includes ex. 12.34.56.78)
Listen 80

相關內容