Answers:
绝对有可能。在这里,我们将以Apache为例。
假设您是Symfony2的忠实拥护者,并且您想http://symfony.local/
从4台不同的计算机(托管网站的主要主机,以及连接到(无论是否通过无线方式)主计算机。
1 设置虚拟主机:
您首先需要在apache httpd-vhosts.conf
文件中设置虚拟主机。在XAMP上,您可以在此处找到此文件:C:\xampp\apache\conf\extra\httpd-vhosts.conf
。在MAMP上,您可以在此处找到此文件:Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
。此步骤将在您的计算机上准备Web服务器以处理symfony.local
请求。您需要提供虚拟主机的名称以及网站的根/主文件夹。为此,请在该文件末尾添加以下行。您需要将更改DocumentRoot
为主文件夹所在的位置。在这里,我已/Applications/MAMP/htdocs/Symfony/
成为我网站的根源。
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 配置您的主机文件:
为了使客户端(在这种情况下,您是浏览器)理解symfony.local
真正的含义,您需要在计算机上编辑主机文件。每次在浏览器中键入URL时,计算机都会尝试理解它的含义!symfony.local
对计算机而言并不意味着任何东西。因此它将尝试将名称解析为symfony.local
IP地址。为此,首先检查计算机上的主机文件,看他是否可以将IP地址与您在地址栏中键入的内容相匹配。如果不能,它将询问DNS服务器。这里的技巧是将以下内容附加到您的hosts文件。
/private/etc/hosts
;/etc/hosts
;\Windows\system32\private\etc\hosts
;\Windows\system32\drivers\etc\hosts
;\Windows\system32\drivers\etc\hosts
;Hosts file
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1 symfony.local
从现在开始,每次在此计算机上键入symfony.local时,您的计算机将使用环回接口连接到symfony.local。它会理解您要在localhost(127.0.0.1)上工作。
3 symfony.local
从另一台计算机访问:
我们终于到达您的主要问题:
现在如何通过另一台计算机访问我的网站?
好吧,这现在很容易!我们只需要告诉其他计算机如何找到它们symfony.local
!我们如何做到这一点?
3a 获取托管该网站的计算机的IP地址:
我们首先需要知道托管网站的计算机上的IP地址(从一开始就一直在使用的IP地址)。在终端中,在MAC和LINUX类型上ifconfig |grep inet
,在WINDOWS
类型上ipconfig
。假设此计算机的IP地址为192.168.1.5。
3b 在您尝试访问网站的计算机上编辑主机文件。:
同样,在MAC上,该文件位于/private/etc/hosts
; 中。在LINUX上 /etc/hosts
; 并在WINDOWS上\Windows\system32\private\etc\hosts
(如果使用WINDOWS 7,则在\Windows\system32\drivers\etc\hosts
)中。
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 最后在浏览器中享受结果
现在,您可以进入浏览器并键入http://symfony.local
以在其他计算机上精美地查看您的网站!请注意,如果您是OSX用户,则可以通过Virtual Box在Internet Explorer上测试您的网站(如果您不想使用Windows计算机),则可以应用相同的策略。在OSX上制作Windows / IE测试环境中对此进行了详细说明。
您可能想知道如何从移动设备访问本地主机网站。在某些情况下,您将无法修改设备上的主机文件(iPhone,iPad ...)(不包括越狱)。
那么,解决方案是在托管网站的计算机上安装代理服务器,然后从您的iPhone连接到该代理。实际上,在以下帖子中对此进行了很好的解释,并且设置时间并不长:
在Mac上,我建议:使用移动设备上的本地主机名测试Mac OS X网站:使用SquidMan作为代理。这是100%免费的解决方案。某些人还可以将Charles用作代理服务器,但它是50美元。
在Linux上,可以通过使用Squid作为代理服务器来适应上面的Mac OS 。
在Windows上,您可以使用Fiddler进行操作。以下帖子描述了该解决方案:使用Fiddler监视iPhone流量
@Dre。是否可以通过不手动编辑主机文件来从另一台计算机访问网站的方法?假设我有100台计算机想要访问该网站
这是一个有趣的问题,与OP问题有关,请允许我提供帮助。
您必须在网络上进行更改,以便每台计算机都知道您的网站托管在哪里。大多数日常路由器都不会这样做,因此您必须在网络上运行自己的DNS服务器。
假设您有一个路由器(192.168.1.1)。该路由器具有DHCP服务器,并为网络上的100台计算机分配IP地址。
现在,假设与上述相同,您在同一网络上的一台计算机上192.168.1.5
拥有您的网站。我们称那台机器pompei。
$ echo $HOSTNAME
pompei
和以前一样,该机器pompei在192.168.1.5
运行的HTTP服务器供应您的网站symfony.local
。
对于要知道symfony.local
托管在其中的每台计算机,pompei我们现在需要网络上的自定义DNS服务器,该服务器知道symfony.local
托管在何处。然后,网络上的设备将能够解析pompei内部提供的域名。
Step 1: DNS Server
在您的网络上设置DNS服务器。让我们它pompei的便利性和使用类似的dnsmasq。
的dnsmasq提供域名系统(DNS)转发器,...。
我们要pompei运行DNSmasq来处理DNS请求Hey, pompei, where is symfony.local
并做出响应Hey, sure think, it is on 192.168.1.5 but don't take my word for it
。
继续安装dnsmasq,dnsmasq配置文件通常/etc/dnsmasq.conf
取决于您的环境。
我个人使用no-resolv
和google服务器server=8.8.8.8 server=8.8.8.4
。
*注意:*如果修改/ etc / hosts文件,请务必重新启动DNSmasq,否则更改不会生效。
Step 2: Firewall
要工作,pompei需要允许传入和传出“域”数据包,这些数据包往返于端口53。当然!这些是DNS数据包,如果pompei不允许,则根本无法访问DNS服务器。继续并打开该端口53。在linux上,您通常会使用iptables
它。
分享我的想法,但是您很可能必须深入防火墙并充分了解所有内容。
#
# Allow outbound DNS port 53
#
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
Step 3: Router
告诉路由器您的dns服务器已打开192.168.1.5
。在大多数情况下,您只需登录路由器即可非常轻松地手动更改此设置。
就是这样,当您在计算机上进行询问时symfony.local
,它将询问您的DNS服务器symfony.local
托管在何处,并且一旦它从DNS服务器收到答复,便会向on 发送正确的HTTP请求。pompei192.168.1.5
我让你玩这个,享受旅程。这两个步骤是主要准则,因此,如果这是您第一次进行调试,则必须调试并花费几个小时。假设这是一个更高级的网络,有主DNS服务器,辅助DNS服务器等。祝好运!
host
手动编辑文件来从另一台计算机访问网站的任何方式?假设我有100台计算机想要访问该网站
为了在同一无线网络和互联网上对两台笔记本电脑进行测试,您可以使用http://localhost.run/或https://ngrok.com/之类的服务
如果两台计算机都在同一个工作组中,请cmd.exe
在要连接的计算机上打开,ipconfig
在该IPv4 Address
行上键入并记下IP 。
然后,在要连接的机器上,使用http:// + the IP of the target machine
。
那应该做。
在Mac OS X上:
在终端中,运行ifconfig | grep 192.
以获取计算机在其当前网络上的内部IP。可能是这样的192.168.1.140
启动服务器。例如,node server.js
可能在某个端口上启动服务器。
在您的手机上,访问192.168.1.140:3000
或运行服务器的任何端口。
这个工具为我节省了很多,因为我没有计算机管理员权限,并且已经安装了nodejs。由于某些原因,我网络上的配置无法使我访问其他计算机,而只是指向浏览器上的IP。
# Using a local.dev vhost
$ browser-sync start --proxy
# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001
# Using a localhost address
$ browser-sync start --proxy localhost:8001
# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1
browser-sync start --proxy localhost:3000
在单独的外壳中使用过。在连接到网络的另一台设备上,我键入:${computerIP}:3000
但是什么也看不到。我想还有更多我应该提供的东西。
可能是您的防火墙阻止了您访问本地主机的Web服务器。
如果需要,将两台计算机的Internet安全防病毒网络安全的IP地址作为安全IP地址。
如何查找Windows PC的IP地址:开始>(运行)键入:cmd(Enter)
(这将打开黑盒命令提示符)
在ipconfig中键入(Enter)
假设您的PC上安装了Apache或IIS Web服务器:192.168.0.3,
并且您想使用笔记本电脑访问网络服务器。(笔记本电脑的IP为192.168.0.5),
在您的PC上,在Firefox或Internet Eplorer浏览器中键入:http:// localhost /,以访问Web服务器上的数据。
在笔记本电脑上,键入http://192.168.0.3/,以访问PC上的Web服务器。
为了使所有这些正常工作,您需要正确安装Web服务器(例如IIS,Apache,XAMP,WAMP等)。
如果不起作用,请尝试从便携式计算机ping您的PC:在便携式计算机上
打开命令propmt:Start(开始)> cmd(输入)
ping 192.168.1.3(输入)
如果ping失败,则说明防火墙阻止了您的连接或网络电缆故障。重新启动调制解调器或网络交换机和计算机。
关闭使用端口的程序,例如聊天程序。
您还可以尝试使用其他端口号:http:192.168.0.3:80或http:192.168.0.3:81或末尾的任何随机数