我正在尝试在我的 Apache 中设置几个 ov VritualHost,但我想将这些虚拟主机的 DocumentRoot 放在基本 www 文件夹之外的文件夹中。我碰巧总是收到“权限被拒绝”的提示。我的 httpd.conf 如下:NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/giuseppe/www
ServerName www.example.com/www
ErrorLog logs/host.www.projects-error_log
CustomLog logs/dummy-host.example.com-access_log common
<Directory "/home/giuseppe/www">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/developper
ServerName www.example.com
ErrorLog logs/host.developper-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
编辑:
我尝试将用户组权限更改为 www 文件夹。但没有成功。我认为问题出在 ServerName 上。
VirtualHost A
ServerName www.example.com
VirtualHost B
Servername www.example.com/www
也许 ServerName 必须是有效的 DNS?例如 www.example.com 和 site2.example.com,而不是简单的
答案1
你可以把它放在DocumentRoot
你想要的地方,没有特殊的限制。
因此,正如错误消息所述,您的问题仅与文件和目录权限有关。
Apache 用户必须能够访问这些 documentRoots 并读取那里的文件。因此,您应该调整以下几点:
- 检查 apache 用户或组是否具有此目录内的目录和文件的读取权限
- 检查他是否拥有所有父目录的执行权
- 检查您是否没有使用 SELinux 或类似的安全工具添加更多限制(检查 apache 日志和系统日志)