Linux
防止其他應用程序綁定到 80 和 443 埠
上週我接到一個害怕的客戶的電話,因為他認為他的網站被黑了。當我查看他的網站時,我看到了
apache2
預設頁面。那天晚上,我的伺服器 (Ubuntu 16.04 LTS
) 已升級並重新啟動。通常,當出現問題時,我會在夜間收到警報。這次沒有,因為監控系統會檢查 HTTP 狀態碼 200,而apache2
預設頁面自帶狀態碼 200。發生的事情是,在啟動期間
apache2
綁定到埠 80 和 443 比我實際的網路伺服器 nginx 更快。我自己沒有安裝 apache2。通過aptitude why apache2
我發現php7.0包需要它。簡單地刪除
apache2
是行不通的,因為顯然 php7.0 需要它。是否有可能創建一個限制,以便只允許 nginx 綁定到埠 80 和 443?其他解決方案也非常受歡迎。
您無法阻止埠被錯誤的服務綁定。在您的情況下,只需從自動啟動中刪除 apache 就可以了。
對於 16.04 及更高版本:
sudo systemctl disable apache2
對於較舊的 Ubuntu 版本:
sudo update-rc.d apache2 disable
如果您真的不使用
apache2
,並且需要它的是 PHP 7.0,那麼看起來您已經libapache2-mod-php7.0
安裝了。沒有 Apache,那個包是沒用的。由於您使用的是 nginx,因此您可能還擁有php7.0-fpm
或php7.0-cgi
已安裝,其中任何一個都足以滿足php7.0
’s 的依賴要求:$ apt-cache depends php7.0 php7.0 |Depends: php7.0-fpm |Depends: libapache2-mod-php7.0 Depends: php7.0-cgi Depends: php7.0-common Conflicts: <php5>
如果您確實安裝了其中任何一個
php7.0-{fpm,cgi}
,則可以繼續解除安裝 Apache。