如何在 WordPress 中正確設置文件權限

已發表: 2022-09-13

如果您曾經管理過 WordPress 網站,您可能會遇到無法安裝插件或主題、無法將圖像上傳到媒體庫或您希望在該網站上的文件的問題沒有正確顯示。

所有這些問題的核心是文件權限的概念,但是如果您從未管理過 Web 服務器,您可能不太確定什麼是文件權限、它們如何工作或它們是如何被錯誤配置的。

在本文中,我們將了解您需要了解的有關文件權限及其在 WordPress 中的工作方式的所有信息。

我們將檢查一些您最有可能看到文件權限錯誤的特定實例,並研究如何診斷和調試這些錯誤。

什麼是文件權限?

從最早的多用戶計算機系統開始,就需要文件權限來決定哪些用戶可以訪問文件系統的哪些部分。

例如,每個用戶通常都有一個“主”文件夾,他們可以訪問該文件夾,但係統上的其他用戶不能訪問該文件夾。

允許這樣做的是一組文件權限,分為 3 類:

  1. 所有者擁有什麼權限。
  2. 文件組有什麼權限。
  3. 每個人都有什麼權限。

這些權限通常以兩種方式之一表示:數字或字符串。 這些數字和字符中的每一個所代表的文件權限在兩種情況下都是相同的。

文件權限示例,取自 WordPress.org

這些權限的設置方式決定了誰可以在任何給定時間訪問給定文件。

WordPress 中如何使用文件權限?

在大多數情況下,運行 WordPress 站點的服務器是以特定用戶身份運行的。

就像系統上的任何用戶一樣,Web 服務器用戶擁有的文件往往可供該用戶訪問,因此該用戶正在運行的 WordPress 安裝可以訪問。

這一點很重要,因為對於 WordPress 運行更新、允許用戶上傳媒體、安裝插件和主題以及 WordPress 運行的大部分內容,它需要訪問 WordPress 安裝中的各種目錄的權限。

例如,如果運行 WordPress 的系統用戶無權寫入上傳目錄,則任何嘗試在 WordPress 管理區域內上傳媒體的人都會看到一條錯誤消息,並且無法向媒體庫添加任何內容.

另一方面,設置過於開放的權限意味著任何人都可以修改您的 WordPress 安裝中的文件,這也是一個安全風險。

這就是為什麼正確設置文件權限非常重要的原因。 如果您使用的是託管主機,這些可能已經為您配置好了。

小心777

如果您遇到文件權限錯誤並開始在網上尋找解決方案,許多教程會建議您將 WordPress 安裝中的一個或多個目錄的文件權限設置為“777 權限”。

這是可能的最開放的權限集,意味著任何人都可以在該目錄中讀取或寫入任何內容。

將有問題的目錄權限設置為 777 背後的想法是,一旦您這樣做,如果您的問題得到解決,那麼文件權限就是問題所在,您可以開始更深入地查看哪些目錄可能設置了不正確的權限。

雖然這對於臨時調試來說很好,但長期保留具有這種權限級別的目錄是一種安全風險。 如果您將任何目錄設置為這些完全開放的權限,那麼任何熟悉 WordPress 工作原理和目錄結構的人都可能會訪問您的文件。

將您的權限設置為 777 並將它們留在那里基本上就像被鎖在您的公寓外面,打破門上的鎖,然後就這樣離開。

雖然它確實解決了您當時的問題,但它也讓您容易受到其他安全漏洞的影響。 讓這些文件權限保持打開狀態不僅僅是為了進行簡短的調試,這意味著您的 WordPress 網站和一般的網絡服務器更容易受到黑客攻擊和利用的插件以及在廣泛網絡中運行的自動攻擊的攻擊。

文件權限引起的常見錯誤

現在我們已經了解了文件權限的使用方式以及它們在 WordPress 中的具體工作方式,讓我們來看看您可能會看到的一些錯誤,這些錯誤是由於文件權限設置不正確造成的。

主題、插件或 WordPress 核心無法安裝/更新

有時,當您運行更新或安裝新主題或插件時,您會遇到無法安裝插件或無法完成更新的錯誤。

在許多情況下,這是一個文件權限問題,特別是運行 WordPress 的 Web 服務器用戶與有權訪問和擁有wp-content目錄的 Web 服務器用戶之間的不匹配。 當您通過 FTP 更新wp-content目錄中的文件時,通常會發生這種情況。

在這種情況下,您通過 FTP 上傳的目錄的所有權被設置為 FTP 用戶,而運行 WordPress 的 Web 服務器用戶則不同。 當 WordPress 嘗試安裝新主題或插件時,Web 服務器會拒絕此嘗試,因為 WordPress 對該文件夾沒有所有權。

這意味著 WordPress 沒有在 wp-content 文件夾中插入或更改文件的正確權限,這就是安裝或更新失敗的原因。

媒體上傳失敗

媒體上傳始終失敗但未觸發錯誤消息,指出它們太大或格式不正確,這可能意味著您也有文件權限錯誤。

如果與 WordPress 綁定的 Web 服務器用戶沒有權限訪問wp-content目錄或uploads目錄,則上傳的媒體文件將無法傳輸到正確的目錄,並且上傳將報告為失敗的。

媒體文件存在服務器上,但是通過瀏覽器訪問時出現404

尤其是在從備份中恢復 WordPress 站點或在主機之間遷移它之後,您可能會發現,即使媒體文件已正確上傳到您的站點並出現在您的wp-content/uploads目錄中,它們仍然會拋出 404 錯誤。 '正在嘗試在瀏覽器中訪問。

發生這種情況時,通常意味著運行 Web 服務器的操作系統用戶無權訪問服務器上的圖像,因此無法將它們提供給訪問者的瀏覽器。

就像上面的問題和解決方案一樣,您應該檢查每個目錄,從wp-content開始,通過uploads和每個月目錄以及圖像本身,並確保 Web 服務器用戶對所有這些文件夾具有讀取權限和文件,以便媒體可以在瀏覽器中正確顯示給訪問者。

如何修復文件常見權限錯誤

修復常見文件權限錯誤的最簡單方法是確保按照 WordPress 期望的方式設置文件權限。

首先,驗證運行 WordPress 的同一 Web 用戶是否擁有運行 WordPress 的根目錄(這是您的 wp-config.php 文件所在的目錄)的所有權。

之後,確保該目錄中的所有 WordPress 文件,以及 wp-content 目錄和下面的所有目錄都歸同一用戶所有。

如果您使用的是使用 cPanel 的網絡主機,您可以直接在 cPanel 內部更改這些權限。 但是,如果您可以通過 SSH 訪問您的服務器並且正在運行基於 Linux 的服務器(大多數 Web 服務器都是如此),那麼您可能必須採用稍微不同的方法。

其他潛在的文件權限錯誤

除了核心 WordPress 和基本主題和插件功能之外,還有其他幾個地方可能會遇到與文件權限相關的錯誤。

也就是說,一些插件使用您的 WordPress 網站的文件系統來完成他們的工作,如果他們無法在文件結構中完成他們需要的工作,您可能會看到一些奇怪的錯誤彈出。

通常這些是備份插件(有時將備份存儲在wp-content目錄中)和緩存插件(有時在wp-content目錄中生成和存儲靜態緩存)。

如果您開始看到任何此類插件出現錯誤,則修復與上述相同。 您需要確保運行 WordPress 的 Web 服務器用戶是您的wp-content目錄的所有者並擁有權限,以便您安裝的插件需要存儲的文件可以放置在那裡。

WordPress的正確文件權限是什麼

儘管每次安裝可能略有不同,但對於 WordPress 中各種類型的文件和文件夾的文件權限應該有哪些一般準則。

一般來說,根據 WordPress 指南, “最好盡可能鎖定您的文件權限,並在您需要允許寫訪問的情況下放寬這些限制,或者創建限制較少的特定文件夾以達到以下目的:做諸如上傳文件之類的事情。”

考慮到這一點,網站的一些區域需要各種權限設置。 WordPress 根目錄和更深層次中的大多數文件應該歸您的用戶帳戶所有,並且可以從該帳戶寫入,但是,還有一些其他地方需要由 Web 服務器寫入,以便 WordPress 可以更改這些文件。

wp-content中, themespluginsuploads目錄需要可由 Web 服務器寫入,尤其是當您想運行自動更新或使用 WordPress 中的主題編輯器時。

如果您不想使用這些功能,您可以通過使這些目錄不可被 Web 服務器寫入來使事情更加安全。 這將允許您的站點仍然正常運行,而不會打開對任何這些文件進行惡意更改的可能性。

包起來

儘管不是大多數 WordPress 網站所有者必須處理的事情,尤其是自從託管主機興起以來,文件權限仍然會產生一些難以調試的錯誤。

但是,如果您知道導致文件權限設置不正確的根本原因的跡象和常見錯誤類型,則可以加快使您的網站重回正軌的過程。

通過了解文件權限以及 WordPress 站點下的操作系統如何運行,您將能夠更快地解決任何潛在的權限錯誤並幫助其他人做同樣的事情!

編輯精選