Mobile WAMPServer,从手机访问服务器
因此,我设置了一些具有唯一URL的虚拟主机,它们在桌面上运行良好。但是,当我将移动设备连接到网络上时,它似乎无法正确访问除默认本地主机virtualhost之外的任何内容,而这只是在它是我仅有的virtualhost时 我的设置和编码与此基本相同,只是有一个不同的站点标题 虽然该解决方案将我重定向到我的唯一url,但默认wordpress网站上缺少图像Mobile WAMPServer,从手机访问服务器,mobile,wamp,virtualhost,wampserver,Mobile,Wamp,Virtualhost,Wampserver,因此,我设置了一些具有唯一URL的虚拟主机,它们在桌面上运行良好。但是,当我将移动设备连接到网络上时,它似乎无法正确访问除默认本地主机virtualhost之外的任何内容,而这只是在它是我仅有的virtualhost时 我的设置和编码与此基本相同,只是有一个不同的站点标题 虽然该解决方案将我重定向到我的唯一url,但默认wordpress网站上缺少图像 是否有人设法让移动设备完全访问本地主机以外的链接 由于我发布了您引用的答案,我决定采用一种更简单的解决方案 实际问题是什么 因为我们不能像使用
是否有人设法让移动设备完全访问本地主机以外的链接 由于我发布了您引用的答案,我决定采用一种更简单的解决方案 实际问题是什么 因为我们不能像使用PC一样摆弄手机的配置,手机永远无法在服务器上的虚拟主机定义中找到我们创建的域名,因为它不存在于任何DNS服务器中,无法在其中定位IP地址,而DNS服务器是手机唯一可以查看的位置,除非是越狱 如果您想从另一台电脑访问一个虚拟主机域,您可以像这样在另一台电脑的主机文件中添加一行
192.168.0.10 example.local
但你不能在手机/平板电脑上做到这一点
Apache希望能够将请求关联到Vhost
当我们创建一个Apache虚拟主机时,实际上是在告诉Apache查看传入连接上的域名,并将该域名与存在于我们的多个虚拟主机定义之一中的ServerName
匹配
但是,如果我们使用例如example.local
作为虚拟托管域,当我们尝试从手机连接到该域时,手机会进行DNS查找,但找不到该域,因此无法获取其ip地址
解决这一问题的最简单方法是:
假设我们没有向DNS服务器添加记录的权限,我们必须想出一个不同的解决方案
其中最简单的是使用运行WAMPServer(Apache)服务器的PC的IP地址和特定的端口号。因此,这是一个不同的端口号为我们的每个网站,我们想从一个电话使用
那么我们如何做到这一点呢
将新的侦听端口添加到现有的两条Listen
语句之后的httpd.conf
中
WAMPServer 3:使用菜单执行此操作,而不是在httpd.conf
right click wampmanager-> Tools -> Add listen port for Apache
#Listen 12.34.56.78:80
Listen 0.0.0.0:80
Listen [::0]:80
Listen 0.0.0.0:8000
Listen [::0]:8000
建议的httpd vhosts.conf
文件
#
# Virtual Hosts
#
# Always keep localhost, and always first in the list
# this way a ramdom look at your IP address from an external IP
# maybe a hack, will get told access denied
<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp/www
<Directory "c:/wamp/www/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
# The normal Vhost definition for one of our sites
<VirtualHost *:80>
ServerName example.local
DocumentRoot "c:/websrc/example/www"
<Directory "d:/websrc/example/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>
# Access example.dev from phone for testing
<VirtualHost *:8000>
ServerName example.local
DocumentRoot "c:/websrc/example/www"
<Directory "d:/websrc/example/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
# assuming yoursubnet is 192.168.0.?
# allow any ip on your WIFI access
Require ip 192.168.0
</Directory>
</VirtualHost>
#
#虚拟主机
#
#始终保持本地主机,并且始终位于列表的第一位
#这样,ramdom就可以从外部IP查看您的IP地址
#可能是黑客,会被告知访问被拒绝
服务器名本地主机
DocumentRoot c:/wamp/www
选项+索引+跟随符号链接+多视图
允许超越所有
要求本地
#我们其中一个站点的正常Vhost定义
ServerName example.local
DocumentRoot“c:/webrc/example/www”
选项+索引+包含+跟随符号链接+多视图
允许超越所有
要求本地
#从手机访问example.dev进行测试
ServerName example.local
DocumentRoot“c:/webrc/example/www”
选项+索引+包含+跟随符号链接+多视图
允许超越所有
要求本地
#假设您的子网是192.168.0。?
#允许WIFI接入上的任何ip
需要ip 192.168.0
完成这些编辑后,从wampmanager重新启动Apache
现在,您可以使用ServerName
即example.dev
从WAMPServer PC上测试此功能,并使用运行端口号为192.168.0.10:8000的WAMPServer的PC的ip从手机上测试此功能
Apache将从这两个请求中找到正确的代码
如果您希望通过手机访问多个虚拟主机,您只需重复此想法并更改每个新站点的端口号,假设您将使用800180028003等来访问任意多个站点
您可能还必须修改防火墙,以允许访问端口8000上的http,或您选择使用的任何端口
它的结果与第一个解决方案相同(加载页面但没有图像),但我想我现在知道为什么了。当我在台式电脑上设置虚拟主机并安装wordpress时,所有链接都与原始服务器名集成。因此,当我尝试在手机上访问它时,手机会不断尝试使用ip访问所有内容,而不是使用服务器名域,使所有图像都为空。我还发现,如果我访问手机上的虚拟主机并使用手机本身安装wordpress,它会工作,但域会更改为ip而不是唯一的url。wordpress因将安装时使用的域名存储在其数据库中并将其用于重定向和图像url等各种事情而臭名昭著。你说我的手机不能直接指向图像url,所以我按照你说的那样做了,端口只与我电脑的ip连接。所以我网站的域名/服务器名是192.168.1.100:8000,192.168.1.100:8001等等,在打开wamp设置后,不要检查virtualhost定义和重复服务器名称。在wordpress中,在permalink设置下,使用一些像velvet blues这样的插件,将URL更改为唯一的URL并不难,这样可以查看手机上不同的站点的外观。非常感谢您的详细解释!我还必须在Windows防火墙上为公共网络启用ApacheHTTP服务器。感谢您的解决方案,它很有效!我必须打开windows防火墙,转到“添加新规则”,选择端口,然后打开端口8000,然后它就工作了(在此之前,我快速禁用了windows防火墙,以查看连接是否通过,以确定是否是防火墙问题)