
我有一台 Centos 6.7 版伺服器,其中安裝了 Apache 2.4。伺服器附帶 Apache 2.2,但我已將其升級到 Apache 2.4。
有時,系統會重新使用 Apache 2.2,我不知道為什麼。
例如,今天,我意識到我的所有網站都癱瘓了。所以我檢查了 httpd 狀態,它已停止,並且由於httpd.conf
文件中的語法錯誤而無法啟動。
透過使用which
命令,我發現正在使用的httpd位於/usr/sbin
資料夾中,事實上,/etc/init.d/httpd
文件包含以下內容:
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
這是錯誤的,因為我的 Apache 2.4 安裝位置是/opt/apache
.因此,為了解決這個問題,我將這些行更改為:
apachectl=/opt/apache/bin/apachectl
httpd=${HTTPD-/opt/apache/bin/httpd}
且系統再次開始使用Apache 2.4。
問題是,如何檢查進行了哪些自動安裝,以及如何避免將來再次發生這種情況?
順便說一句,我以前/usr/sbin/httpd -V
獲取Apache資訊時,顯示它是去年5月11日建造的。
答案1
CentOS 6.x 隨附 Apache 2.2 (httpd-2.2),它將透過 yum 定期更新。您運行的版本似乎與 CentOS 附帶的版本不同(因為它位於 /opt 下)。通常,如果系統配置了 httpd,它會在任何更新後嘗試重新啟動它。您可以透過執行以下命令來驗證這一點:grep -i httpd /var/log/yum.log 並查看其更新時間或:rpm -qa -last | grep -i httpd。這應該告訴您上次更新的時間,並且您可以將中斷與這些時間關聯起來。
如果您知道不再需要 http-2.2 並在 /opt 下運行該版本,那麼最好刪除它。