0

我正在尝试修改 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>
4

1 回答 1

0

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

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1:80>
...

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

参考:NameVirtualHost 指令

NameVirtualHost 在 Apache 2.4 中被删除,所以我假设您使用的是早期版本。从 2.4 开始,它可以在没有它的情况下工作。

于 2016-12-26T06:36:36.533 回答