Ubuntu + Debian / Apache 2.4
我一直试图让mod_ruid2工作相当长的一段时间。 我认为我的基本configuration有问题。
mod_ruid2文档
要确认,在安装mod_ruid2和更新vHosts之前,一切工作正常。
我通过apt安装了mod_ruid2,并configuration了vHost来使用ruid,如下所示
apachectl确认ruid2已加载。 在使用ruid语法更新vHost之后,通过configtest。
通过useradd cb -M创build用户和组“cb”以用作vHost用户。
这是vHost
<VirtualHost *:80> ServerName cb.xxx.xx DocumentRoot /var/www/cb.xxx.xx/public_html/ RDocumentChRoot /var/www /cb.xxx.xx/public_html RUidGid cb cb <Directory "/var/www/cb.xxx.xx/public_html/"> Require all granted RMode config RUidGid cb cb </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
在这一点上,vHostbuild议禁止403。 该目录以前由www数据拥有 – 所以我跑了以下 –
chown -R cb:cb /var/www/cb.xxx.xx/public_html/
我得到同样的问题。 每次我打cb.xxx.xx时,在debugging级别的Apache日志显示如下 – 没有别的
[authz_core:error] [pid 3736] [client 31.53.4.77:63626] AH01630: client denied by server configuration: /cb.xxx.xx/public_html/
研究AH01630的错误会导致大多数其他人在主机上没有'Require all all',我确实和Apache dir的grep确保所有其他主机也有这个。
我在Debian服务器上复制了相同的错误,并得到了同样的问题。 我相信这是在vHost我mod_ruid2的configuration有问题。 具体而言,我相信它的ChRoot我有不正确的。
RDocumentChrRoot - Set chroot directory and the document root inside RDocumentChRoot /home /example.com/public_html
关于这方面的文档似乎非常有限,而且我发现其他人也有类似的问题。 任何人都可以分享一些想法吗?
它经常用于cPanel / DirectAdmin的多租户scheme – 如果你有一个可以看的工作configuration,我将不胜感激
基于错误消息中给出的path
client denied by server configuration: /cb.xxx.xx/public_html/
在Apache检查目录权限之前,显示的是RDocumentChRoot
chroot的请求。 因此,给<Directory>
的path应该是chroot中的path,或者
<Directory "/cb.xxx.xx/public_html/"> Require all granted RMode config RUidGid cb cb </Directory>