У меня естьнемногопроблемы при настройке виртуальных хостов на основе 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