Доступ к виртуальному хосту с компьютера в той же локальной сети

Я пытаюсь сделать настройку, чтобы я мог получить доступ к моему веб-сайту на виртуальном хосте на компьютере A с компьютера B. Оба A и B находятся в одной сети. Я использую xampp для Win 7.

Итак, проблема заключается в том, что компьютер A (сервер) имеет конфигурацию виртуального хоста, как указано в файле httpd-vhosts.conf.

NameVirtualHost project:81

<VirtualHost project:81>

    DocumentRoot "D:/work/website"
    ServerName project:81
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>

(используя порт 81, поскольку порт 80 работает с IIS, не знаю много об этих вещах)

эта конфигурация отлично работает на локальной машине (сервере). i.e проект: 81 в адресной строке браузера открывает веб-сайт как есть.

Теперь на компьютере B (клиент) я изменил файл hosts, чтобы он содержал IP-адрес сервера вместе с именем виртуального хоста, например: -

192.168.1.7 проект

теперь, когда я вхожу в проект: 81 в клиентском браузере. он переносит меня на сервер, но не переносит меня в каталог виртуального хоста, вместо этого он берет в каталог по умолчанию.. то есть в моем случае это

C:\XAMPP\HTDOCS

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

Заранее благодарим за помощь

Ответ 1

Ok Итак, Seto El Kahfi ответил на мой очень старый вопрос, который заставил меня сделать еще несколько исследований и чтения на веб-сайте Apache.

Так что я получил это, моя директива NameVirtualHost была неправильной. Итак, вместо этого

NameVirtualHost project:81

<VirtualHost project:81>

    DocumentRoot "D:/work/website"
    ServerName project:81
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>

Мне нужно было сделать это.

NameVirtualHost *:81

<VirtualHost *:81>

    DocumentRoot "D:/work/website"
    ServerName project
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>

Обратите внимание на "*", я мог бы использовать там IP-адрес. (В этом случае работает локальный IP-адрес моего сервера (машина A)). Теперь все, что мне нужно было сделать, это ввести "проект: 81" на клиентской машине, и я получаю то, что мои глаза хотели видеть.:)

Несколько вещей, которые я получил от этого. 1) Как использовать NameVirtualHost (или в чем его цель в основном.). Подробнее здесь http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost Этот тоже хорош http://www.thegeekstuff.com/2011/07/apache-virtual-host/

2) Вы можете использовать это через командную строку:

httpd -D DUMP_VHOSTS

чтобы узнать, как настроены ваши виртуальные хосты (также вы получите некоторые предупреждения относительно приоритета, если что-то не так с вашей настройкой)

3) Другой жест, который поможет вам, поможет вам помочь себе.:) Так что помогайте и качайте.

Ответ 2

Вы пытаетесь включить порт в файл хоста клиента?

192.168.1.7:81 проект