共享虛擬主機的分發/設置
我目前正在管理一個Gentoo 伺服器,它為朋友和有共同興趣的人託管了幾十個網站。我可能很快就會搬到新的伺服器上,隨之而來的是切換到另一個作業系統的可能性。我很喜歡 Gentoo 讓我修改 USE 標誌並在編譯和安裝之前自動修補上游原始碼的能力,但它確實有一些怪癖(tail 和cron 有微妙的破壞行為、核心 cgroups 程式碼中的死鎖、正在安裝的文件具有隨機破壞的權限),並且維護可能相當可觀(我似乎無法在不破壞一半系統的情況下更新 perl)。
我猜想對於共享主機系統來說,最重要的是兩件事:安全性和穩定性。雖然我通常相信我的使用者不會故意做一些惡意的事情,但我不能相信他們永遠不會讓他們的帳戶受到損害(例如,通過安裝而不更新已發現漏洞的 Web 應用程序)。使用者不應能夠訪問其他使用者的數據、干擾其他網站的可訪問性或破壞伺服器。
CentOS 似乎在伺服器上很受歡迎,雖然我個人對 rpm/yum 的有限經驗相當令人沮喪(我花了一個小時來安裝一個軟體包)。我也聽說過關於 Ubuntu Server 的好消息。還是我應該堅持我所熟悉的,並希望我的 Gentoo 問題僅僅是配置錯誤或累積的雜物造成的,不會在全新安裝中體現出來?(CentOS 和 Ubuntu Server 帶有 SELinux/AppArmor,Gentoo 有 Hardened Gentoo 項目。)
還有 Apache 配置的問題……使用標準 MPM 執行 mod_php 是不可能的,因為它允許腳本訪問所有使用者的數據。CGI 慢很多。我現在正在使用 itk MPM,它似乎工作正常,但我想知道是否有更好的解決方案 - 大型共享託管服務提供商(DreamHost 等)如何做到這一點?
CentOS 非常受歡迎,因為有很多企業供應商的上游支持和系統堅如磐石的特性。轉向這樣的任何系統都會讓你感覺自己被困在籠子裡。你顯然是一個喜歡調整的人(我同意!)。話雖如此,我認為對於共享主機系統 CentOS 或 Ubuntu Server 來說絕對是一種更好的方法,因為它大大簡化了管理。
無論哪種情況,您都需要花一些時間(遠少於學習 Gentoo 所需的時間,恕我直言)來學習它的工具和怪癖。一旦你習慣了使用 apt 或 yum ,它們對於簡單的軟體安裝都是可以接受的。
無論哪種情況,如果您的重點是 PHP/Apache 虛擬主機,您可以簡單地使用 CentOS 或 Ubuntu 建構一個系統,然後自定義建構您自己的 Apache/PHP 以滿足您的確切要求。如果我是你,我會花一些時間看看系統包是否提供了與你正在尋找的配置類似的東西(例如,我知道它們都提供了各種 MPM 模組)。
在 RedHat EL5 中,至少 mod_php 預設安裝以 www-data 使用者身份執行所有 PHP 腳本,這將不允許訪問所有使用者的文件(我可能在這裡遺漏了一些東西)。