Я хочу сделать для своего сайта два поддомена. Для этого я создал три VirtualHosts в моем default
файл под доступными сайтами (я использую Apache в Ubuntu):
<VirtualHost 127.0.0.1>
ServerName nmagerko.me
...
DocumentRoot /var/www
...
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName sub1.nmagerko.me
...
DocumentRoot /some/different/path
...
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName sub2.nmagerko.me
...
DocumentRoot /some/different/path2
...
</VirtualHost>
Однако я не уверен, что делать после этого. У меня есть каждый из этих поддоменов и мой основной домен в моем /etc/hosts
файл как 127.0.0.1
и я установил рекорды для sub1
и sub2
в редакторе домена моего регистратора доменов. Однако эти записи A указывают на тот же IP-адрес, что и мой основной домен, поскольку все это размещается в одной системе ... что не очень полезно. Итак, когда я иду в sub1.nmagerko.me
в моем браузере я получаю такой же сайт, как если бы я зашел на nmagerko.me
.
Есть предложения о том, как действовать?
Попробуйте изменить IP-адрес на порт 80 во всех случаях:
<VirtualHost *:80>
ServerName nmagerko.me
...
DocumentRoot /var/www
...
</VirtualHost>
Это может помочь решить проблему, когда виртуальный хост прослушивает только внутренний (локальный) трафик. Поскольку вы устанавливаете записи A для своих доменов, я предполагаю, что вы используете общедоступный сервер?
Не забудьте перезагрузить apache после любого изменения файла conf:
$ sudo service apache2 reload
Наконец, дайте нам знать, что вы тестируете только локально. Если это так, вам, вероятно, не нужно изменять запись A вашего домена (если вы не размещаете свой собственный частный DNS?).
Хм, конфигурация, которую вы написали, мне кажется правильной, поэтому я постараюсь показать вам, как отладить проблему:
1- Убедитесь, что DNS правильно настроен, выполняя dig nmagerko.me
, dig sub1.nmagerko.me
и dig sub2.nmagerko.me
и ищу IP. Использовать wget X.nmagerko.me
для тестов браузер мог кэшировать ответы DNS.
2- Убедитесь, что файлы в /some/different/path
, /var/www
и /some/different/pat2
разные.
3- Убедитесь, что вы перезапускаете apache с помощью
sudo service apache2 перезапуск
Кроме того, вы также можете посмотреть журналы.
Надеюсь на эту помощь.
Без всего httpd.conf (включая включенные) отсюда невозможно сказать, но добавив
NameVirtualHost 127.0.0.1:80
выше вашего первого <virtualHost domain:80>
может помочь? После изменения перезапустите apache.