Доступ к виртуальному хосту из локальной сети
Я настраиваю платформу для веб-разработки, которая максимально упрощает написание и тестирование всего кода на моем локальном компьютере и синхронизирует его с моим веб-сервером. Я настроил несколько виртуальных хостов так, чтобы я мог получить доступ к своим проектам, введя "проект" вместо "localhost/project" в качестве URL.
Я также хочу настроить это так, чтобы я мог получить доступ к своим проектам из любой сети. Я подписался на URL DYNDNS, который указывает на IP-адрес моего компьютера.
Это прекрасно работало из любого места, прежде чем я настроил виртуальные хосты. Теперь, когда я пытаюсь получить доступ к своим проектам, введя URL-адрес DYNDNS, я получаю сообщение 403 Forbidden Error: "У вас нет разрешения на доступ к / на этом сервере".
Для настройки моих виртуальных хостов я отредактировал два файла - хосты в папке system32/drivers/etc и httpd-vhosts.conf в папке Apache моей установки WAMP.
В файле hosts я просто добавил имя сервера, чтобы связать его с 127.0.0.1. Я добавил следующее в файл http-vhosts.conf:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www/ladybug"
ServerName ladybug
ErrorLog "logs/your_own-error.log"
CustomLog "logs/your_own-access.log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
Любая идея, почему я не могу получить доступ к своим проектам, набрав в моем DYNDNS URL? Кроме того, возможно ли настроить виртуальные хосты так, чтобы при вводе http://projects/ со случайного компьютера за пределами моей сети я получал доступ к url.dyndns.info/projects (он же мои проекты WAMP на моем домашнем компьютере)?
Помощь очень ценится, спасибо!
2 ответа
Ваше имя сервера должно быть FQDN (полностью определенное доменное имя) для внешней работы.
Пример конфигурации:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www"
ServerName url.dyndns.info
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
Вам также необходимо открыть порт 80 через маршрутизатор и перенаправить его на IP-адрес вашего внутреннего сервера.
Вы не сможете использовать только http://projects/ для подключения к вашему серверу, если не настроите DNS-сервер и не будете его использовать.
Как указывает ffreedon_is_chaos, вам нужно использовать полное доменное имя, чтобы получить доступ к службе извне.
В дополнение к ServerName вы также можете добавить псевдоним сервера, который позволит вам получить доступ к домену с другими именами, что означает, что вы все равно сможете использовать не FQDN внутри. Например
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www/ladybug"
ServerName ladybug.something.com
ServerAlias ladybug www.ladybug.something.com
ErrorLog "logs/your_own-error.log"
CustomLog "logs/your_own-access.log" common
</VirtualHost>