3a Get the IP address of the computer hosting the website :
我们首先需要知道托管网站的计算机上的IP地址(我们从一开始就一直在研究的那个) . 在终端中,在 MAC 和 LINUX 上输入 ifconfig |grep inet ,在 WINDOWS 上输入 ipconfig . 我们假设这台计算机的IP地址是 192.168.1.5 .
3b Edit the hosts file on the computer you are trying to access the website from. :
同样,在 MAC 上,此文件位于 /private/etc/hosts ;在 LINUX ,在 /etc/hosts ;并且 WINDOWS ,在 \Windows\system32\private\etc\hosts (如果您使用 WINDOWS 7 ,此文件位于 \Windows\system32\drivers\etc\hosts ) . 现在的诀窍是使用我们尝试访问/通话的计算机的IP地址:
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 Finally enjoy the results in your browser
您现在可以进入浏览器并输入 http://symfony.local 以在不同的计算机上精美地看到您的网站!请注意,如果您是OSX用户,则可以通过Virtual Box在Internet Explorer上测试您的网站(如果您不想使用Windows计算机),则可以应用相同的策略 . 这在Crafting Your Windows / IE Test Environment on OSX中得到了很好的解释 .
# 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
8 回答
如果在执行上述步骤后仍无法从其他设备访问localhost,则这是一个旁注 . 这可能是由于apache ports.conf已经配置为本地服务(127.0.0.1)而不是外部服务 .
检查以下内容,(对于ubuntu apache2)
如果设置如下,
然后将其更改回默认值
可能是您的防火墙阻止您访问localhost的Web服务器 .
如果需要,将两台计算机的Internet安全防病毒网络安全的IP地址作为安全IP地址 .
如何查找Windows PC的IP地址:开始>(运行)输入:cmd(回车)
(这会打开黑匣子命令提示符)
输入ipconfig(回车)
假设您的PC上安装了Apache或IIS Web服务器:192.168.0.3
并且您想要使用笔记本电脑访问您的网络服务器 . (笔记本电脑的IP为192.168.0.5)
在您的PC上,您可以在Firefox或Internet Eplorer浏览器中输入:http:// localhost /访问您的网络服务器上的数据 .
在笔记本电脑上输入http://192.168.0.3/以访问PC上的网络服务器 .
要使所有这些工作正常,您需要正确安装Web服务器(例如IIS,Apache,XAMP,WAMP等) .
如果它不起作用,请尝试从笔记本电脑ping您的电脑:
在笔记本电脑上打开命令propmt:开始> cmd(回车)
ping 192.168.1.3(回车)
如果ping失败,则防火墙会阻止您的连接,或者您的网络布线有问题 . 重启调制解调器或网络交换机和您的计算机 .
关闭正在使用您的端口的聊天程序等程序 .
您还可以尝试不同的端口号:http:192.168.0.3:80或http:192.168.0.3:81或最后的任意随机数
这绝对是可能的 . 我们将在这里介绍Apache的一般情况 .
让's say you'成为一个很大的Symfony2粉丝,你想从4台不同的计算机(托管你网站的主计算机,以及连接(无线或非无线)的Mac,Windows和Linux发行版)访问你的symfony网站
http://symfony.local/
主电脑 .一般草图:
1 Set up a virtual host :
首先需要在apache
httpd-vhosts.conf
文件中设置虚拟主机 . 在 XAMP 上,您可以在此处找到此文件:C:\xampp\apache\conf\extra\httpd-vhosts.conf
. 在 MAMP 上,您可以在此处找到此文件:Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
. This step准备计算机上的Web服务器以处理symfony.local
请求 . 您需要提供虚拟主机的名称以及您网站的root / main文件夹 . 为此,请在该文件的末尾添加以下行 . 您需要将DocumentRoot
更改为主文件夹所在的位置 . 在这里,我把/Applications/MAMP/htdocs/Symfony/
作为我网站的根 .2 Configure your hosts file :
对于客户端(在这种情况下您的浏览器)了解
symfony.local
的真正含义,您需要编辑计算机上的hosts文件 . 每当您在浏览器中键入URL时,您的计算机都会尝试理解它的含义!symfony.local
对计算机没有任何意义 . 因此,它会尝试将名称symfony.local
解析为IP地址 . 它将首先查看计算机上的hosts文件,以查看他是否可以将IP地址与您在地址栏中键入的内容进行匹配 . 如果不能,那么它会问 DNS servers . 这里的技巧是将以下内容附加到您的hosts文件 .在 MAC 上,此文件位于
/private/etc/hosts
;在 LINUX 上,此文件位于
/etc/hosts
;在 WINDOWS 上,此文件位于
\Windows\system32\private\etc\hosts
;在 WINDOWS 7 上,此文件位于
\Windows\system32\drivers\etc\hosts
;在 WINDOWS 10 上,此文件位于
\Windows\system32\drivers\etc\hosts
;主机文件
从现在开始,每次在此计算机上键入symfony.local时,您的计算机都将使用环回接口连接到symfony.local . 它将理解您想要在localhost(127.0.0.1)上工作 .
3 Access symfony.local from an other computer :
我们终于到达了你的主要问题:
那么现在这很容易!我们只需要告诉其他计算机他们如何找到
symfony.local
!我们如何做到这一点?3a Get the IP address of the computer hosting the website :
我们首先需要知道托管网站的计算机上的IP地址(我们从一开始就一直在研究的那个) . 在终端中,在 MAC 和 LINUX 上输入
ifconfig |grep inet
,在WINDOWS
上输入ipconfig
. 我们假设这台计算机的IP地址是 192.168.1.5 .3b Edit the hosts file on the computer you are trying to access the website from. :
同样,在 MAC 上,此文件位于
/private/etc/hosts
;在 LINUX ,在/etc/hosts
;并且 WINDOWS ,在\Windows\system32\private\etc\hosts
(如果您使用 WINDOWS 7 ,此文件位于\Windows\system32\drivers\etc\hosts
) . 现在的诀窍是使用我们尝试访问/通话的计算机的IP地址:4 Finally enjoy the results in your browser
您现在可以进入浏览器并输入
http://symfony.local
以在不同的计算机上精美地看到您的网站!请注意,如果您是OSX用户,则可以通过Virtual Box在Internet Explorer上测试您的网站(如果您不想使用Windows计算机),则可以应用相同的策略 . 这在Crafting Your Windows / IE Test Environment on OSX中得到了很好的解释 .您还可以从移动设备访问本地主机
您可能想知道如何从移动设备访问您的localhost网站 . 在某些情况下,您将无法修改设备上的主机文件(iPhone,iPad ...)(不包括越狱) .
那么,解决方案是在托管网站的机器上安装代理服务器并从您的iPhone连接到该代理 . 它实际上在以下帖子中得到了很好的解释,并且设置时间不长:
在Mac上,我建议:Testing a Mac OS X web site using a local hostname on a mobile device:使用SquidMan作为代理 . 这是一个100%免费的解决方案 . 有些人也可以使用Charles作为代理服务器,但它是50美元 .
在Linux上,您可以使用Squid作为代理服务器来调整上面的Mac OS .
在Windows上,您可以使用Fiddler执行此操作 . 解决方案在以下帖子中描述:Monitoring iPhone traffic with Fiddler
编辑23/11/2017:嘿,我不想修改我的主机文件
这是一个有趣的问题,因为它与OP问题有关,请允许我帮忙 .
您必须对网络进行更改,以便每台计算机都知道您的网站所在的位置 . Most everyday routers don't do that所以你必须在网络上运行自己的 DNS Server .
我们假装你有一台路由器(192.168.1.1) . 此路由器具有DHCP服务器,并为网络上的100台计算机分配IP地址 .
现在,假设您拥有与上述相同的网络,一台机器位于
192.168.1.5
,拥有您的网站 . 我们称这台机器为庞培 .和以前一样,
192.168.1.5
的机器庞培运行 HTTP Server ,为您的网站symfony.local
提供服务 .对于每台知道
symfony.local
托管在庞培的机器,我们现在需要一个知道symfony.local
托管位置的网络上的自定义DNS服务器 . 然后,网络上的设备将能够在内部解析pompei提供的域名 .3简单的步骤 .
第1步:DNS服务器
在网络上设置DNS服务器 . 为方便起见,让我们在pompei上使用它,并使用像dnsmasq这样的东西 .
我们希望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
和谷歌服务器server=8.8.8.8 server=8.8.8.4
.*注意:*如果修改/ etc / hosts文件,请始终重新启动DNSmasq,否则更改将不会生效 .
第2步:防火墙
为了工作,庞贝需要允许传入和传出'domain'数据包,这些数据包将从53端口进出 . 当然!这些是DNS数据包,如果pompei不允许,则根本无法访问DNS服务器 . 继续打开那个端口53.在linux上,你会经常使用iptables .
分享我的想法,但你很可能不得不潜入你的防火墙,并了解一切 .
第3步:路由器
告诉您的路由器您的DNS服务器现在在
192.168.1.5
. 大多数情况下,您只需登录路由器并手动更改即可 .就是这样,当你在一台机器上并要求
symfony.local
时,它会询问你的 DNS Server 在哪里symfony.local
,并且一旦从DNS服务器收到答案,它就会在192.168.1.5
上发送正确的 HTTP request 到pompei .我让你玩这个,享受骑行 . 这两个步骤是主要指导原则,因此如果您是第一次这样做,则必须进行调试并花费几个小时 . 让我们说这是一个更高级的网络,有主DNS服务器,辅助DNS服务器,etc. . 祝好运!
要在同一无线和互联网上的两台笔记本电脑上进行测试,您可以使用http://localhost.run/或https://ngrok.com/等服务
如果两台计算机位于同一工作组中,请在要连接的计算机上打开
cmd.exe
,键入ipconfig
并记下IPv4 Address
行的IP .然后,在要连接的计算机上,使用
http:// + the IP of the target machine
.应该这样做 .
这个工具为我节省了很多,因为我的机器上没有管理员权限,并且已经安装了nodejs . 由于某种原因,我网络上的配置不允许我访问仅将IP指向浏览器的其他计算机 .
http://www.browsersync.io/docs/command-line/
在Mac OS X上:
在终端中,运行
ifconfig | grep 192.
以在其当前网络上获取机器的内部IP . 它可能像192.168.1.140
启动服务器 . 例如,
node server.js
可能会在某个端口上启动服务器 .在手机上,访问
192.168.1.140:3000
或运行服务器的任何端口 .如果您在Windows上,请使用 ipconfig 获取本地IPv4地址,然后在Apache配置文件下指定: httpd.conf ,如:
重新启动Apache服务器并从网络上的其他计算机进行测试 .