Невозможно заставить работать виртуальные хосты. Посмотрите, что я делаю неправильно (CentOS 6.0).

Невозможно заставить работать виртуальные хосты. Посмотрите, что я делаю неправильно (CentOS 6.0).

vhost.conf, расположенный в etc/httpd/vhost.d/

NameVirtualHost *:80

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName localhost
         ServerAlias localhost.example.com
         DocumentRoot /var/www/html/example.com/public_html/
         ErrorLog /var/www/html/example.com/logs/error.log
         CustomLog /var/www/html/example.com/logs/access.log combined
    </VirtualHost>

    <VirtualHost *:80>
         ServerAdmin [email protected]
         ServerName example.org
         ServerAlias www.example.org
         DocumentRoot /var/www/html/example.org/public_html/
         ErrorLog /var/www/html/example.org/logs/error.log
         CustomLog /var/www/html/example.org/logs/access.log combined
    </VirtualHost>

httpd.conf, настройки по умолчанию, добавлены в конец:

Include /etc/httpd/vhosts.d/*.conf

Корневые каталоги:

DocumentRoot "/var/www/html"

Соответствующие каталоги для виртуальных хостов созданы в папке выше. Все разрешения выглядят правильными. Файл index.php в каждом public_htmlкаталоге. Однако, когда я ввожу localhost, он просто перенаправляет меня на страницу Apache 2 по умолчанию, следует ли мне удалить строку Include /etc/httpd/vhosts.d/*.confwebserver works as required из каталога по умолчанию, обслуживая любой файл index, который я туда поместил.

решение1

Исходя из того, что вы набрали, похоже, что у вас нет синтаксических ошибок. Так что сделайте это в файле /etc/hosts (если вы делаете это напрямую с сервера):

127.0.0.1   example.org
127.0.0.1   example.com

Или в хост-файле вашего ПК:

YOURSERVERIP  example.org
YOURSERVERIP  example.com

И перейдите на этот домен вместо localhost.

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

решение2

Поскольку строка Include находится после VirtualHosts, я предполагаю, что один из этих включенных vhosts переопределяет ваши новые. Что говорит "httpd -S"? (это может быть не "httpd", это может быть "apache2" или что-то еще). Флаг -S покажет вам все настроенные вами virtualhosts и поможет с отладкой.

Вы можете попробовать удалить строку include и посмотреть, заставит ли это ваши новые блоки работать. Вы также можете проверить свой журнал ошибок, чтобы увидеть, есть ли какие-либо предупреждения о вашем файле конфигурации.

Связанный контент