Apache忽略DocumentRoot

时间:2016-12-26 05:38:11

标签: apache document-root ampps

我正在尝试修改Apache中虚拟主机的DocumentRoot。正在忽略虚拟主机的DocumentRoot设置,而是使用整个DocumentRoot。

在我的情况下,Apache不使用/ Applications / AMPPS / www / public作为根文件夹,而是使用/ Applications / AMPPS / www。

httpd.conf文件的相关部分如下所示。 有没有人看到问题?

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory,  but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/Applications/AMPPS/www"

...snip...

<VirtualHost 127.0.0.1:80>
<Directory "/Applications/AMPPS/www">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName localhost
ServerAlias localhost 127.0.0.1
ScriptAlias /cgi-bin/ "/Applications/AMPPS/www/cgi-bin/"
DocumentRoot "/Applications/AMPPS/www/public"
ErrorLog "/Applications/AMPPS/apache/logs/error_log"
CustomLog "/Applications/AMPPS/apache/logs/access.log" combined
</VirtualHost>

1 个答案:

答案 0 :(得分:0)

似乎没有使用VirtualHost,这可以解释为什么主服务器配置中的DocumentRoot处于活动状态。您可能需要在NameVirtualHost块之前添加VirtualHost。像这样:

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1:80>
...

同样完全删除ServerAlias指令,因为你没有做任何事情。您不需要在那里复制localhost,因为您将它作为ServerName并且它不接受IP地址。将为分配给它的第一个匹配VirtualHost提供IP地址。

参考:NameVirtualHost Directive

在Apache 2.4中删除了NameVirtualHost,因此我假设您使用的是早期版本。从2.4开始它没有它。