Как остановить по умолчанию 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>
Другие вопросы по тегам