繁体   English   中英

使用LAN上的不同计算机访问Apache虚拟主机(子域)

[英]Apache Virtual Host (Subdomain) access with different computer on LAN

我目前正在尝试配置Apache HTTP Server的虚拟主机(子域),以便可以使用LAN上的另一台计算机访问它。 Apache和PHP和MySQL的当前设置在同一物理机器上本地工作。

所以我有两个虚拟主机设置(开发和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论坛上阅读了其他一些帖子,但这并不是确切的情况。

我想知道如何从另一台机器访问虚拟主机(子域)并尽可能保持相同的端口。

提前致谢

好吧,我想通了,如果其他人正在寻找这个配置,这里是配置:

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

机器A(Apache HTTP Server):httpd-vhost:

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

从第二台机器,你应该能够访问“别名”和“development.alias”

我建议进行以下更改(添加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

除非我遗漏了某些内容,否则您需要设置DNS条目,或者将条目添加到访问服务器的每台计算机的/ etc / hosts文件中。

localhost是默认情况下存在于每个人的/ etc / hosts文件中的条目,始终指向127.0.0.1。 如果不添加/ etc / hosts条目,则developer.localhost不存在,并且使用子域为ip地址添加前缀将根本不起作用。

使用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

我没有更改远程计算机的主机文件,它就像一个魅力

对于Named Virtual Hosts您需要使用主机名或域名连接到您的Apache服务器。 它不适用于ips。

您可以在第二个系统的/etc/hosts插入一个条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM