Назад | Перейти на главную страницу

Apache на localhost: дать виртуальным хостам конкретное имя сервера

Сначала я задаю свой вопрос, и ниже приведены подробности того, что я до сих пор пытался решить:

На 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 или вводить каждый индивидуально, как вы упомянули выше.