WordPress上传图片出错常见原因分析

wordpress

WordPress上传图片出错常见原因分析,以Linux/Ubuntu 16.04 LTS 操作系统为例说明。

1.  目录权限问题

如果PHP进程所属用户没有 uploads 目录的写权限,上传就会失败。

可以使用命令 ps -ef | grep fpm 来查看,默认的用户名一般是 www-data

然后使用命令 ls -l 查看图片存储目录的属主和权限

如果目录属主不一致,使用 chown www-data:www-data uploads -R 将uploads的所属用户和所属用户组修改为www-data

如果目录不可写,使用 chmod 0777  uploads -R 将uploads的目录权限修改为可写,

当php-fpm进程和uploads目录所属用户一致,并且开放了写权限,就规避了无法写入的问题。

当然,也不一定要求两者所属用户一致,uploads目录开放了其他用户的写权限,php-fpm进程也是可以写入的。

2. PHP配置参数原因

php 通过两个参数来控制客户端发送数据包的大小,分别是 post_max_size upload_max_filesize

post_max_size 设置了客户端向服务端发送数据的大小,

upload_max_filesize 设置了上传文件的最大值,

具体的大小,可以通过phpinfo()函数来查看,上传的媒体文件大小如果超过了这两个值,就会出现错误,

在phpinfo()函数页面,找到Loaded Configuration File对应的文件,就是当前运行环境的配置文件,

将其值修改为期望的大小,然后重启php-fpm进程就可以了。

service php7.0-fpm restart

3. Nginx/Apache配置参数原因

以Nginx为例,为了保证服务器稳定,也有一个默认的限制发送来的HTTP数据包大小的配置参数  client_max_body_size

通常这个配置并未出现在Nginx的配置文件里面,但是如果遇到Nginx 报 413  Request Entity Too Large Error这样的错误,就说明请求的数据内容超出了限制。

如果要自定义这个参数,只需在 Nginx 的配置文件/etc/nginx/nginx.conf里面的http{….}之间添加一行代码

client_max_body_size 10M;

这样就把上传文件的大小设置为最大10M了

然后执行下面的命令重新载入 Nginx 的配置即可生效

service nginx reload

以上3点是遇到WordPress不能上传图片或者媒体文件时应该注意的地方。

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注