Назад | Перейти на главную страницу

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

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

NameVirtualHost *:80

    <VirtualHost *:80>
         ServerAdmin webmaster@example.com
         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 webmaster@example.org
         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/*.conf веб-сервер работает в соответствии с требованиями из каталога по умолчанию, обслуживая любой индексный файл, который я туда поместил.

Судя по тому, что набиралось, это не похоже на синтаксические ошибки. Так что сделайте это в файле / 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 с указанным именем хоста, поэтому по умолчанию используется корень документа. .

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

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