Nginx + WordPress 媒体库上传图片提示“图像后期处理失败”
建站之初就遇到这个问题,搜寻了好多资料,
添加过 Nginx 配置client\_max\_body\_size 128m;
但仍未解决
该问题发生在上传图片时,产生如下错误提示:
错误提示
此时按 F12 调出开发者工具 - 控制台,可以捕捉到明显错误
.../async-upload.php 500 (Internal Server Error)
查看后台 /var/log/nginx/error.log 日志发现报错记录
1 | 2020/01/29 00:22:55 \[crit\] 29895#0: \*688 open() "/var/lib/nginx/tmp/client\_body/0000000006" failed (13: Permission denied), client: 172.69.34.220, server: ideajayve.club, request: "POST /wp-admin/async-upload.php HTTP/1.1", host: "ideajayve.club", referrer: "http://158.247.196.28/wp-admin/media-new.php" |
一个显而易见的错误:Nginx 在打开上述路径时遇到 (13: Permission denied) 错误,因为 Nginx 权限不足。
既然是权限问题,查看 Nginx 所属用户和用户组
1 | ps aux grep "nginx: worker process" awk '{print $1}' |
返回结果
1 | www |
那么访问 /var/lib/nginx/tmp/client\_body/0000000006
这个目录需要什么权限?
执行命令查看该目录的权限
1 | sudo ls -al /var/lib/nginx/ |
返回结果
1 | total 12 |
很明显这个 nginx
是默认用户,而我建站之初设立了独立用户 www
,这就导致了日志中的权限拒绝错误。
执行命令修改目录权限
1 | sudo chown -R www:www /var/lib/nginx/ |
再次检查目录权限
1 | sudo ls -al /var/lib/nginx/ |
返回结果
1 | total 12 |
很好,现在权限一致了,上传一张图片试试看。
上传成功
附图可见两次失败,修改过权限后第三次上传就正常了。
问题解决。
WordPress论坛的 @guygolan 在一篇帖子下面的回复提到 F12 查看控制台的方法,正巧今天我看到了这篇,问题才得到了解决。
Nginx + WordPress 媒体库上传图片提示“图像后期处理失败”