![在 LAMP 本地服务器上托管多个域](https://linux22.com/image/613683/%E5%9C%A8%20LAMP%20%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%89%98%E7%AE%A1%E5%A4%9A%E4%B8%AA%E5%9F%9F.png)
我想在 Linux 上的 apache2.2 本地服务器上拥有多个域。我已编辑httpd配置文件并在浏览了互联网上的各种帖子后插入了这些代码。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
DocumentRoot /home/jharvard/vhosts/localhost
</VirtualHost>
<VirtualHost *:80>
ServerName ratnesh
DocumentRoot /home/jharvard/vhosts/ratnesh
</VirtualHost>
这html文件夹位于每个案例的“localhost”和“ratnesh”文件夹中。然后我编辑了/etc/hosts文件如下:
127.0.0.1 localhost localhost.localdomain
127.0.0.1 ratnesh ratnesh.localdomain
127.0.0.1 appliance appliance.localdomain
然后我重启了 Apache 服务。但毫无作用。当我尝试访问本地主机我收到 403 FORBIDDEN 错误。访问拉特内什域名,它会引导我进入谷歌搜索。此外,当我移除编辑过的“httpd.conf”代码(上面写的)在本地主机上工作正常,但 ratnesh 不行。这个问题困扰了我一个星期,现在真的很沮丧。
希望您能帮忙。谢谢。
问候,
拉特内什
答案1
认为服务器范围的指令拒绝访问所有目录,因此您需要指定这些目录以授予它们访问权限,注意我已将您的 html 目录添加到 DocumentRoot。
<VirtualHost *:80>
ServerName localhost
DocumentRoot /home/jharvard/vhosts/localhost/html
<Directory "/home/jharvard/vhosts/localhost/html">
Options Indexes FollowSymLinks
AllowOverride None
# Controls who can get stuff from this server.
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm
</IfModule>
</VirtualHost>