如何在 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 站点下的操作系统如何运行,您将能够更快地解决任何潜在的权限错误并帮助其他人做同样的事情!

编辑精选