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

Поддомен Apache не работает

Я запускаю 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 и т. Д.