2016-12-26 3 views
0

Я пытаюсь изменить DocumentRoot для виртуального хоста в Apache. Параметр DocumentRoot для виртуального хоста игнорируется, и вместо этого используется общий DocumentRoot.Apache игнорирует DocumentRoot

В моем случае вместо использования/Applications/AMPPS/www/public в качестве корневой папки Apache использует/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> 

ответ

0

Кажется, что VirtualHost не используется, что могло бы объяснить, почему DocumentRoot от основной конфигурации сервера активен. Возможно, вам нужно добавить NameVirtualHost перед блоком VirtualHost. Как это:

NameVirtualHost 127.0.0.1 
<VirtualHost 127.0.0.1:80> 
... 

Также удалите ServerAlias директиву полностью в обоих заходы у вас есть там ничего не делают. Вам не нужно дублировать localhost, потому что у вас это имя ServerName, и оно не принимает IP-адреса. IP-адрес будет обслуживаться первым соответствующим VirtualHost, который ему назначен.

Ref: NameVirtualHost Directive

NameVirtualHost был сброшен в Apache 2.4, так что я предполагаю, что вы находитесь на более раннюю версию. С 2,4 по нему работает без него.

Смежные вопросы