问题描述
我在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-data:www-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>