最近检查一采集站,发现网站很多的文章中,带有图片的文章都无法显示图片,打开网站后台发现图片都没有实现本地化。
手动上传图片发现有这样的提示:“无法将上传的文件移动至usr/uploads/2017/04/”。看到这,首先想到的是文件夹权限问题,再然后就是php与nginx运行的用户跟wwwroot中的文件夹所属用户不一致的问题。
遇事搜索一下,发现网上都在说是usr/uploads/没有创建权限,但经考虑,这次遇到的问题肯定跟这个无关(后面交代),所有说百度搜出来的都是千篇一律,没卵用。换google搜索了一下,得到了相关的提示,
具体文章地址:http://www.aspku.com/cms/wordpress/55720.html
下面进入正题,根据分析,这问题就从2方面检查:
1. usr/uploads/下的文件夹权限问题
提起这个问题,首先相到的就是,这个站一直好好的运行,但就上个月换了个vps,网站是直接SSH登录后用命令直接对拷的,所以说文件夹的权限问题可以直接排除。
2.php与nginx运行用户的不一致问题
2.1这个要分开几步检查,首先是检查当前php与nginx的运行用户,这个在《WordPress 权限问题导致更新失败 解决办法》中已经有详细的步骤。经过 ps aux|grep php-fpm 和 ps aux|grep nginx 检查,这里都显示运行用户为 www
2.2用ls –l 检查,发现 /home/wwwroot/www.xxx.com 目录的所属者和所属组均为 root(现在想起来估计就是vps拷贝时直接用root对拷造成的)。看到这,估计就是问题所在了,利用 chwon –R www.ww /home/wwwroot/www.xx.com 更改所有组 各 所有者为www
2.3 再次到wp后台上传图像,成功上传,没出现“WordPress中无法将上传的文件移动至usr/uploads ”的错误提示。
注:本站所在环境是lnmp一键包安装的lnmp环境,所有的操作皆在此环境下完成。
PS: 如果步骤2.1中检查出不至,可先检查nginx.conf 中的user 是什么,nginx.conf位置:/usr/local/nginx/conf/ngin.conf
正常情况下,如果是不一样,修改为www www即可