[英]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.