wordpress - “上传的文件无法移动到 wp-content/uploads/2020/05。”-上传媒体时,在 wordpress 上出现此错误
问题描述
我已经尝试更改以下内容以解决此问题,但仍然无效:
- 将权限更改为 777,755,744,766,644
wp-config.php 中的更改
define('UPLOADS','wp-content/uploads'); require_once( ABSPATH . 'wp-settings.php' );
请注意:我在媒体设置(设置>媒体)中没有此选项
Blockquote 存储在此文件夹中上传。
解决方案
您不必定义 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] 像以前一样递归地进行更改,因此它将影响上传目录中包含的任何文件和目录。
这应该可以解决上传目录上的任何权限问题。
推荐阅读
- mysql-workbench - MySQL Workbench 表循环
- java - 从链表中删除具有最大值的节点
- shell - 如何更改 GCE VM 实例中的默认 shell?
- docker - 密码包含特殊字符时,Docker 机密不起作用
- activejdbc - 有没有办法在 ActiveJDBC 模型中指定表前缀?
- javascript - 将 youtube 开始播放时间转换为秒 - Javascript
- android - 在自定义相机中预览 kotlin
- javascript - 如何在电子(Javascript)中获取当前的前台应用程序
- python - Python Xarray:如何将 3-d DataArray 转换为 2-d 堆叠 Pandas 数据框
- ruby - 从 Ruby 异步调用多个 GET 请求