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
2
www
root

那么访问 /var/lib/nginx/tmp/client\_body/0000000006 这个目录需要什么权限?

执行命令查看该目录的权限

1
sudo ls -al /var/lib/nginx/

返回结果

1
2
3
4
total 12
drwxrwx---. 3 nginx root 4096 Oct 7 21:17 .
drwxr-xr-x. 48 root root 4096 Jan 27 15:08 ..
drwxrwx---. 7 nginx root 4096 Oct 7 21:17 tmp

很明显这个 nginx 是默认用户,而我建站之初设立了独立用户 www ,这就导致了日志中的权限拒绝错误。

执行命令修改目录权限

1
sudo chown -R www:www /var/lib/nginx/

再次检查目录权限

1
sudo ls -al /var/lib/nginx/

返回结果

1
2
3
4
total 12
drwxrwx---. 3 www www 4096 Oct 7 21:17 .
drwxr-xr-x. 48 root root 4096 Jan 27 15:08 ..
drwxrwx---. 7 www www 4096 Oct 7 21:17 tmp

很好,现在权限一致了,上传一张图片试试看。

上传成功

附图可见两次失败,修改过权限后第三次上传就正常了。

问题解决。

WordPress论坛的 @guygolan一篇帖子下面的回复提到 F12 查看控制台的方法,正巧今天我看到了这篇,问题才得到了解决。

Nginx + WordPress 媒体库上传图片提示“图像后期处理失败”

https://www.ideajayve.cn/posts/87934216.html

作者

Jayve

发布于

2020-01-29

更新于

2024-06-21

许可协议


:D 一言句子获取中...