Сначала я задаю свой вопрос, и ниже приведены подробности того, что я до сих пор пытался решить:
На Apache, работающем на localhost, я хочу иметь разные виртуальные хосты, которые будут доступны через url: http: //name-of-the-virtual-host.name-of-the-machine/
Подробности:
Итак, у меня Apache работает на порту 8080 моего ноутбука. Linux Mint, поэтому дистрибутив Debian. Для тестирования все находится на локальном уровне, поэтому DNS не задействован! Я использую IP-адрес 127.0.1.1, в котором находится домен моего компьютера fabjoa. В файле /etc/apache2/apache2.conf
, Я поставил:
ServerName fabjoa
В файле /etc/hosts
, действительно есть линия
127.0.1.1 fabjoa
В файле /etc/apache2/ports.conf
NameVirtualHost *:8080
Listen 8080
Теперь файл conf моего виртуального хоста. Файл называется goyahkla и находится на /etc/apache2/sites-available/
и имеет символическую ссылку в /etc/apache2/sites-enabled
. В этом файле у меня есть следующее:
<VirtualHost *:8080>
ServerName goyakhla.fabjoa
ServerAdmin webmaster@localhost
DocumentRoot /var/sites/goyahkla
....
<Directory /var/sites/goyahkla/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
...
</VirtualHost>
Бег apache2ctl configtest
дает мне синтаксис ОК. Теперь в браузере открываем http://fabjoa:8080/
указывает на виртуальный хост goyahkla (потому что это единственный, который у меня есть), но http://goyahkla.fabjoa:8080
не найден. Другая отладка:
telnet goyahkla.fabjoa:8080
telnet: could not resolve goyahkla.fabjoa:8080/telnet: Name or service not known
lynx goyahkla.fabjoa:8080
Looking up 'goyahkla.fabjoa' first
Looking up 'www.goyahkla.fabjoa.com', guessing...
Looking up goyahkla.fabjoa first
Looking up www.goyahkla.fabjoa.com, guessing...
Looking up www.goyahkla.fabjoa.com:8080
Making HTTP connection to www.goyahkla.fabjoa.com:8080
Alert!: Unable to connect to remote host.
lynx: Can't access startfile http://www.goyahkla.fabjoa.com:8080/
Есть идеи, как можно достичь цели?
Мне нужно создать новые записи в /etc/hosts
для каждого виртуального хоста.
Например, я добавил следующую строку:
127.0.2.1 goyahkla
Что позволяет мне получить к нему доступ через
http://goyahkla/
Вы ищете 127.0.1.1 *.fabjoa
синтаксис стиля в вашем файле hosts. К сожалению, файл hosts не поддерживает это. Для этого вам придется использовать DNS или вводить каждый индивидуально, как вы упомянули выше.