Apache Virtual Host (Subdomain) доступ с другого компьютера в локальной сети - PullRequest
9 голосов
/ 22 августа 2011

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

Итак, у меня есть две установки Virtual Host (разработка и cms), работающие на порте не по умолчанию 50080. Машина сервераиметь IP 10.0.0.10.С одной и той же физической машины я могу получить доступ к двум виртуальным хостам с помощью:

development.localhost:50080
cms.localhost:50080

С другой физической машины я могу получить доступ к корню сервера с помощью:

10.0.0.10:50080

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

development.10.0.0.10:50080
cms.10.0.0.10:50080

Но они, похоже, не работают.

Вот как выглядит мой httpd-vhosts файл:

NameVirtualHost *:50080
<VirtualHost *:50080>
    DocumentRoot "C:/www/HTTP"
    ServerName localhost
</VirtualHost>

<VirtualHost *:50080>
    ServerAdmin administrator@development.localhost
    DocumentRoot "C:/www/HTTP/development"
    ServerName development.localhost
    ErrorLog "logs/development.localhost-error.log"
    CustomLog "logs/development.localhost-access.log" common
</VirtualHost>

Я прочитал некоторыедругого поста здесь и на форуме Apache, но здесь нет точного объяснения.

Мне было интересно, как я могу получить доступ к Виртуальному хосту (поддомену) с другой машины и сохранить тот же порт, если это возможно.

Заранее спасибо

Ответы [ 5 ]

25 голосов
/ 22 августа 2011

Хорошо, я понял, вот конфигурация, если кто-то еще ищет это:

=============================================== ===================================

Машина A (HTTP-сервер Apache): HTTPD-ВХост:

NameVirtualHost *:50080

<VirtualHost *:50080>
    DocumentRoot "C:/www/HTTP"
    ServerName localhost
    ServerAlias alias <!-- Added -->
</VirtualHost>

<VirtualHost *:50080>
    ServerAdmin administrator@development.localhost
    DocumentRoot "C:/www/HTTP/development"
    ServerName development.localhost
    ServerAlias development.phoenix <!-- Added -->
    ErrorLog "logs/development.localhost-error.log"
    CustomLog "logs/development.localhost-access.log" common
</VirtualHost>

хосты:

127.0.0.1 development.localhost

127.0.0.1 alias
127.0.0.1 development.alias

=============================================== ===================================

Машина B (Гостевая машина): хосты:

10.0.0.10 alias
10.0.0.10 development.alias

Со второй машины вы сможете получить доступ с помощью «alias» и «development.alias»

3 голосов
/ 22 августа 2011

Я предлагаю внести следующее изменение (добавьте строки ServerAlias):

NameVirtualHost *:50080
<VirtualHost *:50080>
    DocumentRoot "C:/www/HTTP"
    ServerName localhost
    ServerAlias cms.myserver.com
</VirtualHost>

<VirtualHost *:50080>
    ServerAdmin administrator@development.localhost
    DocumentRoot "C:/www/HTTP/development"
    ServerName development.localhost 
    ServerAlias development.myserver.com
    ErrorLog "logs/development.localhost-error.log"
    CustomLog "logs/development.localhost-access.log" common
</VirtualHost>

Перезапустите Apache, чтобы изменения вступили в силу.

Затем на втором компьютере необходимо добавитьПользовательские записи DNS для этих новых доменных имен.Если это Windows, отредактируйте файл c:\windows\system32\drivers\etc\hosts.Если это Linux, отредактируйте / etc / hosts.В любом случае добавьте:

10.0.0.10 development.myserver.com
10.0.0.10 cms.myserver.com

Теперь на вашем втором компьютере вы сможете получить доступ к следующим URL-адресам:

http://development.myserver.com:50080
http://cms.myserver.com:50080
2 голосов
/ 22 августа 2011

Если я что-то упустил, вам нужно либо настроить записи DNS, либо добавить записи в файл / etc / hosts для каждого компьютера, обращающегося к серверу.

localhost - это запись, которая по умолчанию существует в каждом файле / etc / hosts и всегда указывает на 127.0.0.1. Без добавления записи в / etc / hosts developer.localhost не существует, и префикс ip-адреса с поддоменом вообще не будет работать.

1 голос
/ 07 июня 2015

Используя SSH + Putty туннель и, таким образом, имея 127.0.0.1 на моем сервере, мне удалось получить доступ к своим поддоменам, выполнив на стороне сервера следующее:

# nano /etc/hosts

127.0.0.1  localhost.localdomain localhost
127.0.0.1  sub1.domain.com sub2.domain.com sub3.domain.com sub4.domain.com

Я не изменилхост-файл удаленного компьютера, и он работает как шарм

0 голосов
/ 22 августа 2011

Для Named Virtual Hosts вам необходимо использовать имя хоста или имя домена для подключения к вашему серверу apache.Он не работает с ips.

Вы можете вставить запись в ваш /etc/hosts в вашей второй системе.

...