Debian 10中LAMP的WordPress权限问题

问题描述

我在Google Compute Engine的Debian 10中创建了一个LAMP服务器。 我不想使用 / var / www / site / html ,而是将 / home / user / site / public_html 用作站点的根目录。 我在/etc/apache2/apache2.conf中添加了以下代码,以启用站点的主目录。

<Directory /home/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

所有子目录的public_html权限为 775 ,所有文件的权限为 664 。 所有文件文件夹(包括public_html)的所有权为 user:www-data

我的网站已安装并正在运行,但是由于WP无法写入该目录,所以无法安装任何插件。尝试安装插件时,我收到this消息。

如何解决此问题?

编辑

但是,如果我将所有权设置为 www-datawww-data ,那么我可以安装插件,但是在这种情况下,用户将无法使用FTP对文件夹进行任何更改。

请指导我如何实现两者。

我想到的解决方案是用户获得与 www-data 相同的权限。在这种情况下,我们可以将所有权分配为 user:user 。因此,FTP也将起作用,并且插件也将能够安装。

但是我不知道该如何实现,即将www-data的权限分配给任何用户

解决方法

我有一个解决方案。如果我使用以下命令将用户添加到www-data组

sudo usermod -a -G www-data user

然后,用户可以通过FTP访问该文件夹后对其进行更改。

,

我可以通过安装apache模块 mod_ruid2 找到解决方案。为此,以下文章提供了很多帮助。

[https://www.jamroom.net/brian/documentation/guides/1202/configuring-apache-with-mod-ruid2]

但是在您需要为apache安装apsx之前

sudo apt-get install apache2-dev
sudo apt-get install libcap-dev

每个站点的apache配置文件应在虚拟主机中包含以下代码

<IfModule mod_ruid2.c>
        RMode config
        RUidGid USER USER
        RGroups www-data
    </IfModule>

    <IfModule itk.c>
            AssignUserID USER USER
    </IfModule>