我知道这个问题已经被问过很多次了,但我完全被困住了。我的/var/www/html
文件夹包含:
mbfr/
|-- index.html
|
school/
|-- index.html
我想为目录exemple.com
提供服务mbfr
,并为目录exemple.com/school
提供服务school
。这是我的VirtualHosts
配置文件:
<VirtualHost *:80>
ServerName exemple.com
ServerAdmin [email protected]
DocumentRoot /var/www/html
Alias / /mbfr
Alias /school /school
<Directory "/var/www/html/school">
Order allow,deny
Allow from all
Require all granted
</Directory>
<Directory "/var/www/html/mbfr">
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
exemple.com
工作正常但exemple.com/school
给了我
Forbidden
You don't have permission to access /school/ on this server.
答案1
您是否对 */school 文件夹设置了正确的权限?最近,在操作系统升级后重新安装 /var/www/html 中的文件夹后,我收到了相同的 403 消息。事实证明,各个文件的权限都没有问题,但在该文件夹上,只有我自己作为所有者拥有读取、写入和执行权限。组和其他人也需要读取和执行权限,所以一个简单的方法chmod a+rx
对我来说就成功了。可能值得检查。
答案2
请理解,我下面的答案不是实际的解决方案,而是一种解决方法,因为它删除了 httpd 周围的安全强制措施,并且无法预测此操作的效果。尽管如此,在你弄清楚什么是好的、永久的解决方案之前,它是有效的。
作为服务器上的 root 用户,执行以下命令
setenforce 0
service httpd start
该setenforce 0
命令将 apache 置于 SELinux Permissive 模式。由于我不是网络管理员,也没有 apache 的内在知识,因此我不知道此操作的影响。也许有人可以启发我们俩。由于我的网络服务器并不重要,所以我真的不在乎。如果我必须从头开始安装服务器,我也没关系。但你的情况可能有所不同。所以,请对我的建议持保留态度。那是一大粒。