У меня есть немного проблемы при настройке виртуальных хостов по IP. Прежде всего, я использую текущий XAMPP от apachefriends (XAMPP 1.7.7 с Apache 2.2.21) в Windows 7.
Базовая функциональность над «главным» сервером (от httpd.conf
) работает отлично. Но теперь я хочу настроить несколько виртуальных хостов с разными 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
.
Просто проверьте это руководство
http://i.justrealized.com/2008/how-to-set-up-virtualhost-in-xampp-for-windows/
Это работает для меня
Я обнаружил проблему: хосты на базе IP просто не работают. Простое определение нескольких имен в файле hosts (foo.localhost, bar.localhost, все сопоставление с одним и тем же IP-адресом), а затем использование vhosts на основе имен работает без каких-либо проблем. Конечно, это не так портативно, как IP-адреса, поскольку другие машины в сети, естественно, не знают этих имен ... но что ж, если это как-то работает ...
Вот несколько основных вещей, которые вы можете попробовать добавить, чтобы убедиться, что вы получаете правильный порт.
# Ensure that Apache listens on port 80
Listen 80
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80
Вот пример из appache, как это должно выглядеть:
<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>
Я уверен, что вы видели это раньше, но иногда полезно оглянуться на простые вещи.
Моя установка отлично работает с двумя веб-сайтами на одном ящике с использованием ServerName www.example.com.
Надеюсь это поможет!
Убедитесь, что apache знает, где находится файл vhost.conf. Внизу httpd.conf вам, возможно, придется раскомментировать
Include conf/*.conf