我在AWS上使用自己的Ubuntu盒子。我有两个用户:medsyd(我的wordpress网站的所有者)和www-data(apache运行为)。现在,为了让事情变得有效,我已将两者都添加到彼此的组中 - 因此www-data属于medsyd组,而medsyd属于www-data组。
我正在努力使wordpress可以上传/安装插件而无需FTP访问。我可以很好地上传图像/媒体 - 但插件似乎表现得非常奇怪,并且没有遵循我期望的文件权限。
这是我尝试过的:
medsyd:medsyd作为网站目录的所有者及其所有内容; 775个目录,664个文件。 Wordpress要求FTP。为什么? (www-data用户应该能够写入/读取正确的文件,因为它属于medsyd组)
medsyd:www-data作为网站目录的所有者及其所有内容; 775个目录,664个文件。 Wordpress要求FTP。为什么? (www-data用户应该能够写入读/写正确的文件,因为这些文件都属于www-data组)
www-data:www-data作为网站目录的所有者及其所有内容; 775个目录,664个文件。 Wordpress不要求FTP。好极了。但是www-data不应该拥有我的所有文件。
www-data:www-data作为wp-content目录的所有者(及其所有内容)ONLY(medsyd:medsyd拥有的wp-content之外的所有其他内容); 775个目录,664个文件。用于FTP的Wordpress ASKS。 (为什么这与上面的例子不同,哪个有效,哪些www-data拥有wp-content目录之外的所有东西?)
wordpress使用什么逻辑来决定在安装插件时是否要求FTP?我似乎无法想到任何与上述4个例子相符的内容。
编辑:我理解还有其他方法 - 例如更改用户apache运行,在wp-config等中存储FTP凭据,但无论如何,我真的理解为什么我上面使用的权限不是表现得像预期的那样。
答案 0 :(得分:1)
最简单的方法是将apache作为“medsyd”用户运行。其他方式需要更复杂的服务器配置。
打开文件/ etc / apache2 / envvars并更改以下行:
#include <string.h>
然后重启apache。 service apache2 restart
如果您有多个网站并希望将它们分开,我建议您阅读有关mpm_itk的内容。
我会尝试解释为什么你有775特权的麻烦。 GROUP权限仅影响具有相同PRIMARY组的用户。其他群体并不重要。
例如,您有“www”目录,由medsyd:medsyd拥有。权限是775.Apache将无法在那里写,因为它的主要组是www-data。您应该将Apache UID / GID更改为www-data:medsyd,我的意思是将其更改为PRIMARY组。
但无论如何,如果你想完全分开几个网站,这种方式不适合你,因为一个被入侵的网站可以访问所有其他网站。在这种情况下,mpm_itk会更好。