【问题标题】:Confusing file permissions issues when uploading wordpress plugins上传 wordpress 插件时令人困惑的文件权限问题
【发布时间】:2016-08-31 06:20:52
【问题描述】:

我在 AWS 上使用我自己的 Ubuntu 机器。我有两个用户:medsyd(我的 wordpress 网站的所有者)和 www-data(运行 apache)。现在,为了让事情顺利进行,我已将两者都添加到彼此的组中 - 所以 www-data 属于 medsyd 组,而 medsyd 属于 www-data 组。

我正在努力让 wordpress 无需请求 FTP 访问即可上传/安装插件。我可以很好地上传图像/媒体 - 但插件的行为似乎非常奇怪,并且没有遵循我所期望的文件权限。

这是我尝试过的:

  1. medsyd:medsyd 作为站点目录及其所有内容的所有者; 775 个目录,664 个文件。 Wordpress 要求 FTP。为什么? (www-data 用户应该能够写入/读取正确的文件,因为它属于 medsyd 组)

  2. medsyd:www-data 作为站点目录及其所有内容的所有者; 775 个目录,664 个文件。 Wordpress 要求 FTP。为什么? (www-data 用户应该能够写入以读取/写入正确的文件,因为这些文件都属于 www-data 组)

  3. www-data:www-data 作为站点目录及其所有内容的所有者; 775 个目录,664 个文件。 Wordpress 不要求 FTP。耶。但 www-data 不应该拥有我所有的文件。

  4. www-data:www-data 仅作为 wp-content 目录(及其所有内容)的所有者(wp-content 之外的所有其他内容由 medsyd:medsyd 拥有); 775 个目录,664 个文件。 Wordpress 要求 FTP。 (为什么这与上面的示例不同,后者有效,其中 www-data 也拥有 wp-content 目录之外的所有内容?)

wordpress 在安装插件时使用什么逻辑来决定是否请求 FTP?我似乎想不出任何与上面的 4 个例子相一致的地方。

编辑:我知道还有其他方法可以解决这个问题 - 例如更改用户 apache 运行的身份,将 FTP 凭据存储在 wp-config 等中,但无论如何,我真的要理解为什么我上面使用的权限不是表现如预期。

【问题讨论】:

    标签: php apache ftp wordpress


    【解决方案1】:

    最简单的方法是以“medsyd”用户身份运行 apache。其他方式需要更复杂的服务器配置。

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

    export APACHE_RUN_USER=medsyd
    export APACHE_RUN_GROUP=medsyd
    

    然后重启apache。服务 apache2 重启

    更新

    如果您有多个站点并想将它们分开,我建议您阅读有关 mpm_itk 的内容。

    我将尝试解释为什么您对 775 权限感到困扰。 GROUP 权限仅影响具有相同 PRIMARY 组的用户。其他组无所谓。

    例如,您有 medsyd:medsyd 拥有的“www”目录。权限是 775。Apache 将无法在那里写入,因为它的主要组是 www-data。您应该将 Apache UID/GID 更改为 www-data:medsyd,我的意思是更改它的 PRIMARY 组。

    但无论如何,如果您想完全分离多个站点,这种方式不适合您,因为一个受感染的站点可以访问所有其他站点。在这种情况下,mpm_itk 会更好。

    【讨论】:

    • 我知道还有一些其他的解决方案。我实际上有多个站点在不同的用户下运行,所以这不会逐字运行。我确实知道有办法让您的解决方案也适用于多个用户/站点。但无论如何,我真的很想了解为什么上面的文件权限不起作用。
    • 我的评论太长,请阅读答案中的“更新”
    猜你喜欢
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多