我只是安装了一个VPS,安装了所有我需要的东西,它运行得很好。问题是,我希望它能够自动更新,并允许我安装没有ftp的插件。这是我的设置:
我创建了一个名为“wordpress”的新用户和组,Nginx和PHP-FPM都使用“wordpress”作为用户和组我在“wordpress”组中添加了自己的ssh帐户。假设我的用户名是“user”我将文件的所有权更改为用户“user”和组“wordpress”,包括正确的权限(775用于文件夹,664用于文件,稍后我将尝试755/644)已更改文件夹组(chgrp -R
) 至“wordpress”。我还对文件夹执行了“chmod g+s”,因此新文件属于“wordpress”组有了以上所有内容,我仍然无法安装新插件(可能还有主题或更新),但如果我将文件所有者更改为“wordpress”,一切都很好。是否不可能让“用户”拥有这些文件,以便在我使用sftp上载文件时不必chown
.
TL;DR
WordPress文件是否可能由与运行nginx/php fpm的组位于同一组的用户拥有,并且仍然能够安装插件?
编辑:
更多信息:
nginx。顶部的conf包含user wordpress wordpress
和pool.d/www.conf
包含2行,其中user = ilyesnl
group = ilyesnl
. 我还确认这两个进程都是由用户运行的wordpress
.
SO网友:Otto
WordPress特别检查fileowner 它创建的文件的个数与返回的值相同getmyuid.
这意味着,如果它使用与WordPress文件本身所有者不同的所有者创建文件,则不会使用“直接”模式。
同一组是不够的。WordPress写入的文件必须与WordPress文件本身具有相同的所有权,否则它不会这样做,而是会尝试其他方法,例如FTP权限。这意味着PHP进程必须以实际拥有WordPress文件的同一用户的身份运行。
因此,如果您的PHP以“wordpress”的身份运行,但文件归“user”所有,那么您将获得FTP文件。
这方面的测试在get_filesystem_method()
作用