首页 > 解决方案 > “上传的文件无法移动到 wp-content/uploads/2020/05。”-上传媒体时,在 wordpress 上出现此错误

问题描述

我已经尝试更改以下内容以解决此问题,但仍然无效:

  1. 将权限更改为 777,755,744,766,644
  2. wp-config.php 中的更改

    define('UPLOADS','wp-content/uploads');
    require_once( ABSPATH . 'wp-settings.php' );
    

    请注意:我在媒体设置(设置>媒体)中没有此选项

Blockquote 存储在此文件夹中上传。

标签: wordpress

解决方案


您不必定义 UPLOADS - WordPress 知道在哪里可以找到其上传目录,并且更改默认值可能会在以后导致问题,因此首先从 wp-config 文件中删除“定义...”行。

在服务器上,我假设您在某种 linux 机器上(您没有指定),但首先要做的是找出服务器在哪个用户下运行 Apache Web 进程。

ps aux | egrep '(apache|httpd)'

这将列出所有正在运行的 apache 进程,并且在第一列中您应该看到用户 - 在我的,它是 www-data。您可能会看到一些以 root 为用户的用户,请忽略这些。

www-data 22052  1.0  3.3 482980 135680 ?       S    11:50   0:03 /usr/sbin/apache2 -k start

了解用户现在允许我们确保用户有权写入整个 WordPress 目录 - 这包括更改 .htaccess 文件以更新符号链接,以及安装插件、更新以及上传文件和媒体。

导航到包含 wp-config.php 文件的主 wp 目录并运行ls -l

您应该会看到所有文件的列表,其中包含与之关联的用户和组,以及他们的权限。不要在这里更改权限。您应该会发现大多数或所有文件都具有与文件所有者相同的 apache 用户(同样,我的是 www-data) - 第一列。

-rw-r--r--  1 www-data customuser  3168 Apr  3 13:58 wp-config.php

现在我们要确保安装中的每个文件和目录都归该用户所有,以便它可以根据分配的特定 r/w 权限进行更改。在执行此操作之前,请确保您位于 WordPress 目录中!

将此处的“www-data”替换为您在上一步中确定运行 apache 的任何用户。'www-data' 在我的服务器上是正确的,但在你的服务器上可能不同。

chown -R www-data *

这会将目录中的文件以及嵌套在目录中的任何文件和目录的所有权 [chown] 递归地 [-R] 更改为 [www-data] 我们确定 Web 服务在 [* 下运行的用户] ] 对一切。

测试并查看是否可以解决问题。

如果没有,请导航到上传目录的实际标准位置。

[你的 wp 根文件夹]/wp 内容

ls -l再次运行

 drwxr-xr-x 14 www-data www-data 4096 Apr  3 13:47 uploads

权限在开头 - [drwxr-xr-x]

[d] - 目录

[rwx] 所有者已读/写/执行 - 7

[rx] 组已读取/--/执行 - 5

[rx] 每个人都读过/--/execute - 5

所以这将是 755 权限

您可以在此处使用 chmod 更改权限:

chmod -R 755 ./uploads

[./uploads] [.] 表示“从当前目录开始”,[/uploads] 表示“影响上传目录”。[-R] 像以前一样递归地进行更改,因此它将影响上传目录中包含的任何文件和目录。

这应该可以解决上传目录上的任何权限问题。


推荐阅读