Субдомены XAMPP вдруг не работают
ОК, у меня проблемы... и все хуже и хуже!
Я на Windows 7, работает под управлением XAMPP. Я определил множество поддоменов на localhost для разных веб-проектов; т.е. xyz.localhost, abc.localhost и т. д. Они работали нормально. Я добавляю каждый поддомен в два этапа:
Я добавляю раздел в
httpd-vhosts.conf
это выглядит так:<VirtualHost *> DocumentRoot "path/to/xampp/htdocs/xyz" ServerName xyz.localhost </VirtualHost>
Я добавляю в свой файл hosts запись (C:\Windows\System32\drivers\etc\hosts), которая выглядит следующим образом:
127.0.0.1 xyz.localhost
Затем я перезагружаю Apache. Bam. Это всегда работало, и мне не нужно было разбираться во внутренних принципах работы этих файлов.
Сегодня я включил компьютер и обнаружил, что все мои субдомены localhost вдруг не работают. Chrome и Firefox говорят, что не могут их найти. Тем не менее, я все еще мог получить доступ http://localhost
и я также мог получить доступ к папкам поддоменов, используя http://127.0.0.1/xyz
,
Немного покопавшись, я обнаружил эту загадочную ошибку в своем журнале ошибок:
VirtualHost _default_:443 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
Итак, я просмотрел файлы и обнаружил, что httpd-ssl.conf
есть раздел, который начинается с <VirtualHost _default_:443>
, Однако этот файл не изменялся годами, так что это, вероятно, не проблема.
Я пытался изменить свой httpd-vhosts.conf
файл:
- от
NameVirtualHost *
вNameVirtualHost *:80
, а также <VirtualHost *>
в<VirtualHost *:80>
но это не сработало.
Так случайно я подумал, может быть, я бы добавил Listen 443
в httpd.conf
, Это сделало так, чтобы Apache больше не запускался, поэтому я вынул его.
В чем дело?? Что могло измениться? Спешу добавить, что я даже не знаю, какое отношение порт 443 имеет к XAMPP. Я никогда не захожу на свои локальные сайты с использованием SSL, и мне это не нужно. Может кто-нибудь мне помочь? Я ковыряюсь в темноте.
2 ответа
Для тех, кто не хочет беспокоиться о погоне за диким гусем в этой теме, позвольте мне подвести итог проблемы и ее решения.:)
Я внезапно не смог получить доступ к каким-либо поддоменам, которые я создал на локальном хосте, используя XAMPP. Я знал, что они были настроены правильно, потому что они работали в течение длительного времени до проблемы.
Проблема оказалась в моем файле hosts (C:\Windows\System32\drivers\etc\hosts). Этот файл предназначен для ручного ввода пар IP-адрес / имя хоста, минуя DNS-сервер, и его необходимо редактировать при добавлении субдомена в localhost (см. Мой вопрос о том, как это сделать). Файл hosts довольно требователен к форматированию, и я понял, что что-то изменило окончание строк в этом файле с CRLF
(стандартная Windows) для CRCR
, Я визуально заметил, что файл выглядел с двойным интервалом, но я не понял причину, пока не посмотрел на гекс и не увидел 0d0d
повсюду. Мне удалось исправить окончание строк в Sublime Text, и все снова стало счастливым.
Я подозреваю, что файл был испорчен Cisco AnyConnect Secure Mobility Client. Это последняя итерация VPN-клиента Cisco AnyConnect VPN, которую я недавно установил для доступа к VPN-клиенту. Я заметил новую строку в моем файле hosts, в которой указан IP этого VPN, и я думаю, что когда приложение Cisco добавило эту строку, оно исказило окончание строк всего файла. Моя теория.
Спасибо, Уэйн, за помощь в решении проблемы.
Согласно моим комментариям выше.
- Скачал xampp v1.8.3-3 и установил в C:\XAMPP
- Создано 3 папки в C:\XAMPP\htdocs\xampp (site1, site2, site3).
- Создан фиктивный файл index.htm во всех трех папках просто с названием сайта
- Отредактировал C:\XAMPP\Apache\conf\extra\httpd-vhosts.conf и сделал так
NameVirtualHost *: 80
DocumentRoot "C: / xampp / htdocs / xampp"
ServerName localhost
VirtualHost>
DocumentRoot "C:/xampp/htdocs/xampp/site1"
Имя_сервера site1.localhost
VirtualHost>
DocumentRoot "C:/xampp/htdocs/xampp/site2"
Имя_сервера site2.localhost
VirtualHost>
DocumentRoot "C:/xampp/htdocs/xampp/site3"
Имя_сервера site3.localhost
VirtualHost>
- Запустил командную строку как администратор
- Отредактированные хосты через: блокнот c:\windows\system32\drivers\etc\hosts
- Добавлены следующие строки
127.0.0.1 site1.localhost
127.0.0.1 site2.localhost
127.0.0.1 site3.localhost
- Запустил apache через панель управления XAMPP
- Проверено работоспособность всех 4 сайтов: site1.localhost, site2.localhost, site3.localhost и просто localhost (страница приветствия xampp)
Для диагностики проблем виртуального хоста
- Проверьте файл журнала apache
- Попробуйте проверить связь с сайтом и вернуть правильный IP-адрес. В случае сбоя проверки связи обычно возникает проблема с записью файла DNS/ хоста.
- Используйте что-то вроде http watch, чтобы убедиться, что заголовок http для сайта настроен Host xxxx.xxxx