Директива виртуальных хостов Apache2 (XAMPP) не работает (судя по всему)

Директива виртуальных хостов Apache2 (XAMPP) не работает (судя по всему)

У меня естьнемногопроблемы при настройке виртуальных хостов на основе IP. Во-первых, я использую текущий XAMPP от apachefriends (XAMPP 1.7.7 с Apache 2.2.21) на Windows 7.

Базовая функциональность на "главном" сервере (из httpd.conf) работает отлично. Но теперь я хочу настроить несколько vhosts с разными IP-адресами, так как я настроил свою сетевую карту на использование всех IP-адресов от 192.168.2.95 до 192.168.2.105 .

Это запись виртуальных хостов:

<VirtualHost 192.168.2.96:80>
    DocumentRoot "/xampp/hegedocs/www"
    ServerName 192.168.2.96:80
</VirtualHost>

httpd -D DUMP_VHOSTSговорит следующее:

PS G:\xampp\apache\bin> ./httpd -D DUMP_VHOSTS
VirtualHost configuration:
192.168.2.96:80        192.168.2.96 (G:/xampp/apache/conf/extra/httpd-vhosts.conf:45)
Syntax OK

Но я не могу получить доступ к vhost, и Apache, похоже, не прослушивает 192.168.2.96:80 - для этого адреса не отображается запись с netstat -a -b.

решение1

Я нашел проблему: виртуальные хосты на основе IP просто не работают. Простое определение нескольких имен в файле hosts (foo.localhost, bar.localhost, все сопоставленные с одним и тем же IP-адресом) и последующее использование виртуальных хостов на основе имен работает без проблем. Конечно, это не так переносимо, как IP-адреса, поскольку другие машины в сети, естественно, не знают этих имен... но ладно, пока это как-то работает...

решение2

Просто проверьте это руководство

http://i.justrealized.com/2008/how-to-set-up-virtualhost-in-xampp-for-windows/

Мне это помогает.

решение3

Вот несколько основных вещей, которые вы можете попробовать добавить, чтобы убедиться, что вы используете правильный порт.

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

Вот пример того, как это должно выглядеть:

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost>

Я уверен, что вы уже видели это раньше, но иногда полезно оглянуться назад и взглянуть на простые вещи.

Моя настройка работает нормально, запуская 2 веб-сайта на одном компьютере, используя ServerName www.example.com.

Надеюсь это поможет!

решение4

Убедитесь, что apache знает, где находится файл vhost.conf. Внизу httpd.conf вам, возможно, придется раскомментировать

Include conf/*.conf

Связанный контент