將 php 作為 fastcgi 與 Apache mod 執行,目錄權限為 777
嗨,我是一名網路開發人員,而不是伺服器工程師,請多多包涵!
我剛剛獲得了一個新的 Ubuntu LAMP VPS 伺服器,我正在嘗試對其進行配置。
我知道將 php 作為 apache-mod 執行是執行 php 的最快方式。但要實現這一點,我必須將我的目錄設置為 777,以便 php 可以寫入它們。反過來,ftp 就不能再刪除 php 創建的目錄了。
這似乎並不理想。
我知道使用 fast-cgi 的“php 使用者”和“ftp 使用者”是相同的,因此您不會遇到這些問題,也不必打開 777 的目錄來允許寫入,我認為這是一個安全問題。
那麼有什麼優點/缺點
- 具有 755 權限的 fast-cgi 與具有 777 權限的 apache mod?
謝謝
編輯
所以好吧777顯然不好。但是我如何讓 apache-mod 和 ftp 使用者相同 - 正如我所提到的,我不是伺服器管理員!謝謝
帶有 mod_php 的 Apache 易於設置且執行速度快——但它無法擴展。每個請求都需要一個完整的執行緒——其中包括 apache 及其所有模組。這正是它快速的原因 - 每個請求都會獲得一個專用的 php.ini 實例。另一方面,極少數的同時請求會消耗所有可用記憶體,並使伺服器緩慢爬行。
如果您走 mod_php 路線-@fuscata 的答案提供了一個很好的方法-使用組來避免您的目錄和文件可被“其他”寫入。另一種選擇是簡單地使您的 FTP 使用者與執行 apache 的使用者相同 - 儘管從安全形度來看這並不好。
我肯定會建議使用 fast-cgi 方法——除了可以正確實現權限之外,它還可以更好地利用可用資源。雖然單個請求會慢一些,但在更高的負載下,整體性能會比使用 mod_php 好很多。
將 mod_fastcgi 與 php-fpm 一起使用 - 使用與 FTP 使用者匹配的使用者名設置 php-fpm 池,並儘可能使用最嚴格的權限 - 目錄通常可以接受 755(但您應該能夠使用 750)考慮將權限設置為您的 PHP 文件設置為 640 -“其他”實際上並不需要對您的文件具有讀取權限(對於包含數據庫密碼、電子商務密鑰等的文件尤其如此 - 儘管一旦您輸入,這些文件應該設置為 600 - 或 400數據)。