Как остановить по умолчанию localhost virtualhost от направления на именованный виртуальный хост?
Итак, сначала небольшая справочная информация:
- использование PhpStorm IDE (на самом деле это не важно, а просто передача информации)
- использование Vagrant под управлением Ubuntu 14.04 (использование Vagrant также не важно)
- есть основной
/var/www/
папка на виртуальном сервере - назвали сайт
default.dev
в/var/www/default.dev/
папка на виртуальном сервере содержание
/etc/apache2/sites-available/000-default.conf
файл:<VirtualHost *:80> ServerAdmin email@email.com ServerName localhost DocumentRoot /var/www/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
содержание
/etc/apache2/sites-available/default.dev.conf
файл:<VirtualHost default.dev:80> ServerAdmin email@email.com ServerName default.dev ServerAlias default.dev DocumentRoot /var/www/default.dev/src/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
оба сайта были включены через sudo a2ensite
Файл хостов Windows содержит следующее:
192.168.10.10 localhost 192.168.10.10 default.dev (plus commented out Vagrant ID)
пытаюсь настроить модульное тестирование PHP, что немного странно с PhpStorm + Vagrant и требует от меня прямого доступа к localhost отдельно от моего тестового сайта
- default.dev может быть правильно доступен в браузере
- прямой переход на localhost некорректно загружает содержимое сайта default.dev
- так например:
пытаясь получить доступ к файлу, расположенному в/var/www/phpinfo.php
с помощьюhttp://localhost/phpinfo.php
выдает ошибку 404 на сайт, файлы которого расположены по адресу/var/www/default.dev/src/
Итак, еще раз:
собирается в default.dev (находится по адресу /var/www/default.dev/src/
) в браузере работает нормально
КАК настроить свою систему так, чтобы я мог получить доступ /var/www/
в браузере через localhost
?
БОЛЬШОЕ спасибо всем заранее, что нашли время, чтобы прочитать это, и еще БОЛЬШОЕ спасибо всем, кто потратил время / усилия, чтобы ответить
1 ответ
Согласно документации Apache, ServerName
требуется полное доменное имяlocalhost
имя не является полностью определенным доменным именем.
Попробуй поменять свой 000-default.conf
:
<VirtualHost *:80>
ServerAdmin email@email.com
ServerName default.localhost
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Смена хостов Windows:
192.168.10.10 default.localhost
Согласно инструкции Apache:
Syntax: <VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>
Addr can be any of the following, optionally followed by a colon and a port number (or *):
The IP address of the virtual host;
A fully qualified domain name for the IP address of the virtual host (not recommended);
The character *, which acts as a wildcard and matches any IP address.
The string _default_, which is an alias for *
Итак, предлагаю изменить:
<VirtualHost default.dev:80>
с:
<VirtualHost *:80>