2014-11-30 4 views
2

У меня есть следующий VirtualHost файл:Apache игнорирует корень документа

<VirtualHost *:80> 

     ServerName www.domain.com 
     ServerAlias domain.com 

     ServerAdmin [email protected] 
     DocumentRoot /var/www/html/xxx/public 

     ErrorLog ${APACHE_LOG_DIR}/error.log 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 


</VirtualHost> 

Apache, кажется, игнорировать мои Document Root и показывает мне вместо того, чтобы файл, который находится в каталоге

/var/www/html 

. Есть ли что-то, что мне нужно изменить, чтобы это произошло?

ответ

2

Вы уверены, что это единственный виртуальный хост, который находится на порту 80. Я подозреваю, что другое место будет переопределять это.

Также нет директивы для каталога, поэтому вы можете получить разрешения, когда будете работать.

Часто я обнаружил, что другие виртуальные хосты скрываются в таких вещах, как apache.conf.

Также вы знаете, что есть два места для файлов сайта прямо? сайтов и доступных сайтов. Если он не включен в сайты, он ничего не сделает. Используйте sudo a2ensite siteName для создания симпликации к файлу в разрешенных сайтах.

Также, если вы находитесь на Apache 2.4, файлы должны заканчиваться на .conf, чтобы быть поднятым. Вещи немного изменились с 2.2 до 2.4.

+0

Спасибо за ваш ответ +1! Это значит, что файл заканчивается на .conf и уже соединен с a2ensite с сайтами. Это совершенно новый установленный сервер, поэтому я не думаю, что есть еще одна установка vhost (я этого не делал, и я единственный на этом сервере.) Можете ли вы представить что-нибудь еще? – baao

+0

Точка с директивой для каталога кажется мне многообещающей. Какой способ их установить? – baao

+0

У вас должен быть каталог, определенный как указанный здесь http://httpd.apache.org/docs/2.4/mod/core.html#directory. Он также платит за установку безопасности, поэтому, если вы хотите, чтобы у всех был доступ «Требовать все предоставленные». Обычно я размещаю это внутри vhost под корнем документа. –

3

Пробыв в течение 30 минут, пытаясь выяснить, почему материал был игнорируется, кажется apache2.4 игнорирует ваши сайты с поддержкой конфиги, если они не заканчиваются в .conf, например:

Неправильно:

ls /etc/apache2/sites-enabled/ 
001-owncloud 002-owncloud-ssl 003-ram 

Правильно:

ls /etc/apache2/sites-enabled/ 
001-owncloud.conf 002-owncloud-ssl.conf 003-ram.conf 
+0

Я не могу поверить, что это еще не увеличило обороты. Спасибо. –