如何使用我的iPhone访问我的PC本地主机和互​​联网?

时间:2016-03-21 09:37:07

标签: iphone apache windows-10

我的Windows 10 pc已安装xampp。我将它用于多个项目,因此我的文件夹结构类似于:

xampp
|-htdocs #dummy localhost
|-htdocs-projecta
|-htdocs-projectb
|-etc

我已经设置了http-vhosts.conf文件和hosts文件,这样当我转到projecta.devprojectb.dev时,apache会返回正确的网站。

我已将我的电脑设置为充当wifi热点并将我的iphone连接到热点。我已经在我的iphone上配置了wifi连接,以便我的电脑充当代理。这意味着当我在手机上转到projecta.dev时,我可以通过计算机查看该网站。

这是我遇到问题的地方 - 使用这种方法,我只能看到我计算机上的网站(即我无法从其他网站下载资源 - 例如jQuery或Google Analytics)。

如何设置我的电脑和iPhone,以便我可以从我的手机上访问电脑上的本地项目域,以及定期上网下载其他脚本?

[编辑] 更多信息:

我的vhosts文件配置如下:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\"
    ServerName localhost
        <Directory C:\xampp\htdocs>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projectb"
    ServerName projectb.dev
        <Directory C:\xampp\htdocs-projectb>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
...

我的主机文件是:

127.0.0.1       projecta.dev
127.0.0.1       projectb.dev
...

当我从手机访问project-a.dev时,它会加载网站,不包括第三方资源(例如Google字体和jQuery)。当我去谷歌时,它加载我的本地主机,其他页面/文件夹返回404.这使我认为问题在于vhosts配置 - 它找不到匹配的服务器名称并且正在加载默认的本地主机。

所以我将<VirtualHost *:80>更改为<VirtualHost projecta.dev:80>,但这没有效果。我还添加了Listen projecta.dev:80,但这也有效。

如何设置vhost以忽略vhosts文件/ ServerNames中的所有请求?

2 个答案:

答案 0 :(得分:0)

首先,您可以在连接到wifi热点后检查您的iPhone是否能够连接到任何网站,例如www.google.com

如果是,但仍然无法连接,可以通过试用笔记本电脑检查jquery脚本的链接是否正确。如果手机出现同样的问题,则检查元素并检查脚本是否成功下载。有时,我们可能会错误地放置jquery链接。

如果一切正常但iPhone仍然无法下载,我想你可以下载那些jquery脚本并与你的项目一起放入htdoc文件夹。实际上这种方式可以节省很多时间。

希望这可以帮到你!

答案 1 :(得分:0)

我设置了我的iphone以获得所有请求的个人代理连接。

我必须要做的是在我的电脑上创建一个.pac文件,这样,根据请求,它会告诉我的iphone是作为代理访问我的电脑还是直接连接到资源。

这是我的proxyfile.pac:

function FindProxyForURL(url, host)
{
    //localhost projects
    if (dnsDomainIs(host, "projecta.dev")) return "PROXY 192.168.1.87:81";
    if (dnsDomainIs(host, "projectb.dev")) return "PROXY 192.168.1.87:82";
    //... etc

    //everything else
    return "DIRECT";
}

正如你所看到的,我现在告诉我的iphone使用我的电脑将特定网址代理到同一个ip上的不同端口。如果我将它设置为端口80,那么他们都将访问我的默认localhost而不是他们应该加载的网站。这意味着我也更新了我的vhosts文件:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>
Listen 81
<VirtualHost *:81>
    DocumentRoot "C:\xampp\htdocs-projecta\public_html"
    ServerName projecta.dev
        <Directory C:\xampp\htdocs-projecta>
                AllowOverride All
                Require all granted
        </Directory>
</VirtualHost>

对于每个项目,我复制/粘贴VirtualHost块,更改端口并添加Listen命令。

通过此设置,我现在可以访问我的电脑和iphone http://projecta.dev以及一般的互联网(例如http://google.com),以便我可以根据需要下载外部资源(如jQuery,谷歌字体等)。