首页 文章

上传wordpress插件时会混淆文件权限问题

提问于
浏览
0

我在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所拥有的wp-content之外的所有内容:medsyd); 775个目录,664个文件 . 用于FTP的Wordpress ASKS . (为什么这与上面的例子不同,哪个有效,哪些www-data拥有wp-content目录之外的所有东西?)

wordpress使用什么逻辑来决定在安装插件时是否要求FTP?我似乎无法想到任何与上述4个例子相符的东西 .

编辑:我理解还有其他方法 - 例如更改用户apache运行,在wp-config等中存储FTP凭据,但无论如何,我真的明白为什么我上面使用的权限不符合预期的行为 .

1 回答

  • 1

    最简单的方法是将apache作为“medsyd”用户运行 . 其他方式需要更复杂的服务器配置 .

    打开文件/ etc / apache2 / envvars并更改以下行:

    export APACHE_RUN_USER=medsyd
    export APACHE_RUN_GROUP=medsyd
    

    然后重启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会更好 .

相关问题