所以,我有一个带有“部署”用户的盒子。此部署用户拥有一个代码存储库,并且 wordpress 正在此框上运行...
当 wordpress 尝试执行诸如上传插件之类的操作时,它正在使用用户“www-data”写入“wp-content/plugins”。显然它正在上传一个 zip 文件,取消归档,然后删除该 zip 文件。
我一直遇到 wordpress 无法执行这些操作的问题。由于我的整个代码存储库被设置为所有者和组:“deploy:deploy”,显然 www-data 无法访问它。
因此,我的第一次尝试是将 www-data 添加到部署组。
usermod -a -G deploy www-data
发出此命令后,我立即发现我无法再通过 ssh 进入该框。完全不知道为什么 - 任何人都可以告诉我吗?所以我最终做了:
chmod -R go-w ~
然后可以再次 ssh... 执行“groups www-data”将部署显示为选项之一,所以我想万岁...我去确保 wp-content 和插件目录都具有该组的写入权限,他们做到了……双喜临门,它应该可以完美运行!
但是,不...尝试上传插件时失败。
经过一番烦恼,我刚刚进入 apache 配置并将 APACHE_RUN_USER & GROUP 更改为“部署”
问题解决了......有点。除了 apache 作为主要用户运行的想法之外,我认为这很糟糕。
无论如何,因此在进行此更改后,上传插件成功,我看到:
drwxr-xr-x 8 deploy deploy 4096 Oct 22 21:28 wp-crm
所以,该组没有写访问权限——我想这可能是为什么失败的暗示……但是,它使用 deploy 编写的事实意味着这并不是真正的暗示……因为那只是由于deploy 的 umask 如何设置为.. 我假设...
所以......我只是迷失了解决方案是什么......
我的 wp-content 组应该是 www-data 吗?
还是我在这里错过了其他东西?