Nginx环境下WordPress更新与SFTP文件编辑的权限配置问询
这个问题我碰到过好多次了,其实核心是要让Web服务器用户(www-data)和你的SFTP用户(example)共享对WordPress文件的读写权限,之前的尝试没成功大概率是漏掉了关键的权限配置步骤,比如设置目录的setgid位。下面是一步步的具体命令,你照着来就能搞定:
第一步:把SFTP用户加入Web服务器用户组
把你的example用户追加到www-data组里,这样它就拥有了www-data组的权限:usermod -aG www-data example注意这里用
-aG是追加组,不会覆盖example用户原来的主组,执行完后最好重新登录一下SFTP,让组权限生效。第二步:设置WordPress目录的所有者和组
把整个WordPress目录的所有者设为你的SFTP用户example,组设为www-data,这样两边都能基于所有者/组权限访问:chown -R example:www-data /path/to/your/wordpress记得把
/path/to/your/wordpress替换成你实际的WordPress安装路径,比如/var/www/html。第三步:配置目录权限
目录需要执行权限才能进入,同时让所有者和组都有读写权限:find /path/to/your/wordpress -type d -exec chmod 775 {} \;第四步:配置文件权限
文件不需要执行权限,给所有者和组读写权限,其他用户只读即可:find /path/to/your/wordpress -type f -exec chmod 664 {} \;第五步:设置目录的setgid位(关键!)
这个步骤很容易被忽略,设置后新创建的文件会自动继承目录的组(也就是www-data),而不是创建者的主组。这样WordPress后台更新生成的新文件,组权限依然是www-data,不会出现后续权限冲突:find /path/to/your/wordpress -type d -exec chmod g+s {} \;
做完这些配置后,你试试用SFTP编辑文件,再去WordPress后台更新核心或安装插件,应该就都能正常操作了。如果还有个别目录(比如wp-content/uploads)有问题,重复上面的chown和chmod命令单独处理一下就行。
内容的提问来源于stack exchange,提问作者Mangat Singh Chauhan




