Я запускаю apache на своем локальном компьютере и пытаюсь создать поддомен, но он не работает. Вот что у меня (урезано):
<VirtualHost *:80>
DocumentRoot /var/www/one
ServerName one.localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/two
ServerName two.localhost
</VirtualHost>
Я недавно добавил one
. В two
запись существует некоторое время, и она по-прежнему работает нормально (отображает веб-страницу, когда я перехожу в two.localhost
). Фактически, я скопировал весь two.localhost
запись и просто изменена two
к one
, но это не работает. Я пробовал каждое из следующих действий:
* `apachectl -k graceful`
* `apachectl -k restart`
* `/etc/init.d/apache2 restart`
* `/etc/init.d/apache2 stop && !#:0 start`
Apache пожалуется, если /var/www/one
не существует, поэтому я знаю, что это происходит что-то, но когда я приезжаю one.localhost
в моем браузере браузер жалуется, что там ничего нет. Я поставил index.html
файл там, а также попытался перейти one.localhost/index.html
напрямую, и браузер все равно не исправит это. Это очень сбивает с толку, поскольку запись, которую я скопировал из two.localhost
является именно то же самое .. не только это, но если бы что-то было не так, я бы ожидал получить 500, а не браузер, который ничего не мог бы найти. В error_log
тоже ничего лишнего.
Есть "one.localhost" в вашем /etc/hosts
- Проверьте разрешение с помощью ping one.localhost
У тебя есть NameVirtualHost *:80
директива тоже? Это необходимо, чтобы сообщить Apache, что «*: 80» - это виртуальный хост на основе имени, а не виртуальный хост на основе IP-адреса. Посмотрите разницу здесь: http://httpd.apache.org/docs/2.2/vhosts/name-based.html
Кроме того, вы пробовали запустить apachectl -t
выполнить проверку синтаксиса файлов конфигурации?
Вы можете попробовать посмотреть файл журнала доступа к серверу. Если вы не нашли ни одной записи, которая соответствует вашему исходному IP и запрошенному URL, значит, вы не достигнете своего сервера, используя этот субдомен.
Один момент, о котором вы не говорили, - это разрешение DNS-имен one.localhost
. Вам нужно либо определить A / CNAME
запись на вашем DNS-сервере для ответа на запросы разрешения one.localhost
или, по крайней мере, вам нужно добавить новую запись в /etc/hosts
файл на вашем клиентском компьютере (C:\Windows\System32\drivers\etc\hosts
в машинах Windows).
Если вы можете связаться с вашим сервером, то, скорее всего, это проблема конфигурации. Вам нужно смотреть на общую конфигурацию, а не только на небольшую деталь. Кроме того, у вас могут быть некоторые файлы правил перезаписи / .htaccess и т. Д.