У меня есть установка apache2 на моем локальном компьютере с виртуальными хостами.
В моем файле hosts у меня есть это:
127.0.1.1 mysite
'mysite' - это сайт, на котором у меня есть скрипты php, которые используют include ('/ path / to / something');
Если я наберу «mysite» в адресе своего браузера, все загрузится нормально.
Однако если я наберу http: // локальный / mysite,
я получаю такие ошибки, как: Предупреждение: включите (/media/Shared/sites/www/includes/functions.php
Обратите внимание, что в сообщениях об ошибках после www отсутствует mysite. поэтому мой сценарий считает, что корнем является www, а не www / mysite. Это проблема, потому что то же самое происходит, когда я захожу на сайт через внешний IP-адрес.
Как я могу это исправить?
Когда вы получаете доступ http: // локальный / mysite /, Apache будет искать правильный VirtualHost для использования с использованием правил приоритета Apache, подробно описанных в официальной документации Apache. Затем это зависит от того, как настроены ваши разные VirtualHosts.
Вам необходимо иметь "ServerAlias localhost" в настройке виртуального хоста mysite, иначе Apache, скорее всего, будет использовать вместо этого виртуальный хост 000-default. Если вы работаете в соответствии с правилами NameVirtualHosts для этого IP-адреса, Apache будет искать правильный виртуальный хост для использования с использованием заголовка Host: запроса, и, если ни один не соответствует, будет использовать первый определенный, действительный для этого IP / порта.
Ваш "mysite" - первая запись в вашем списке виртуальных хостов? Если это не так, то доступ http: // локальный / mysite / не будет использовать ожидаемую запись виртуального хоста. Если запрошенное имя хоста не совпадает с Название сервера или ServerAlias записи в вашей конфигурации (разрешены подстановочные знаки) Apache не будет использовать эту запись.