apache:无权访问/在此服务器上。当我使用虚拟主机时

时间:2012-05-04 08:36:14

标签: apache vhosts

例如,virtualHost的文档根目录为/var/www,服务器名称为aaa.com。 但是,如果我使用forbiddenlocalhost访问服务器,则apache会告诉我aaa.com。如果我将Directory中的http.conf选项更改为/var/www,则apache可以正常运行。我不知道为什么?

我想在Directory中设置httpd-vhosts.conf选项,而不是httpd.conf,我该怎么做?

这是我的http.conf

enter image description here

这是我的httpd-vhosts.conf

enter image description here

3 个答案:

答案 0 :(得分:12)

http.conf文件中,您应该只为<Directory />定义选项。您应在httpd-vhosts.conf个文件中定义VirtualHosts的所有选项。类似的东西:

的httpd.conf:

DocumentRoot "/var/www"

<Directory />
        Order deny,allow
        Deny from all
        Options None
        AllowOverride None
</Directory>

的httpd-vhosts.conf:

ServerName aaa.com
DocumentRoot /var/www

<Directory /var/www>
        Options FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>

答案 1 :(得分:5)

此配置对apache 2.2版有效

首先在终端中输入apachectl -V来检查您的apache版本。

如果显示类似的内容

Server version: Apache/2.4.27 (Ubuntu)
Server built:   2018-04-18T14:20:05

然后您的apache版本已更新,但您正在使用的配置已弃用。

所以而不是

2.2配置:

Order allow,deny
Allow from all

使用它:

2.4配置:

Require all granted

有关升级的更多文档,请按照官方文档:

http://httpd.apache.org/docs/current/upgrading.html

答案 2 :(得分:1)

2.4配置:

<Directory />

Options All
AllowOverride All

</Directory>