繁体   English   中英

如何使用ip访问为多个站点配置的wamp中的不同站点

[英]How to access different sites in wamp configured for multiple sites using ip

我正在使用wamp在本地开发并且我已经配置了环境来处理多个站点,但是我想使用ip地址访问特定站点,我不知道是否必须在127.0.0.0之后添加端口。 0.1.

以下是我的主机设置。

127.0.0.1       localhost
127.0.0.1       www.site1.net
127.0.0.1       www.site3.com

并在虚拟主机上。

<VirtualHost *:80>
    ServerAdmin www.site1.net
    DocumentRoot "c:/wamp/site1/"
    ServerName www.site1.net
    ServerAlias www.site1.net
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin www.site2.com
    DocumentRoot "c:/wamp/site2/"
    ServerName www.site2.com
    ServerAlias www.site2.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

问题

当我在地址栏中输入 127.0.0.1 时,它会转到 site1,但我不知道如何使用 ip 访问 site2。

为什么我想要这个。 因为当我尝试从同一网络上的另一台设备访问这些站点时,它们不起作用,除非我使用这个 ip:172.20.10.4,这个在 iphone 上,这个 ip 转到 localhost,它是 site1 然后我不能访问站点2。

但是只有 www.site.net 或 www.site2.com 才能在运行 wamp 的机器上运行。

编辑。 这是尝试过的。

我把一些端口放在 httpd.conf 的“监听”部分;

Listen *:80
Listen *:8182
Listen *:8383

并更改了 htttpd-vhosts;

<VirtualHost *:80>
        ServerAdmin localhost
        DocumentRoot "c:/wamp/"
        ServerName localhost
        ServerAlias localhost
        ErrorLog "logs/dummy-host.example.com-error.log"
        CustomLog "logs/dummy-host.example.com-access.log" common
    </VirtualHost>
<VirtualHost *:8181>
        ServerAdmin www.site1.net
        DocumentRoot "c:/wamp/site1/"
        ServerName www.site1.net
        ServerAlias www.site1.net
        ErrorLog "logs/dummy-host.example.com-error.log"
        CustomLog "logs/dummy-host.example.com-access.log" common
    </VirtualHost>
<VirtualHost *:8182>
        ServerAdmin www.site2.com
        DocumentRoot "c:/wamp/site2/"
        ServerName www.site2.com
        ServerAlias www.site2.com
        ErrorLog "logs/dummy-host.example.com-error.log"
        CustomLog "logs/dummy-host.example.com-access.log" common
    </VirtualHost>

这适用于设备,例如在 iphone 上,我可以拨打 172.20.10.4:8181,然后转到站点 1,而 8182 转到站点 2。

新问题

网站的 url 现在搞砸了,我只能通过他们的端口的 ip 访问这个网站,而不是他们的域名,所以在本地机器上 127.0.0.1:8181 转到站点 1 但 www.site1.net 没有找到此站点所在的服务器目录。

好的

如果您使用 IP 地址(来自网络上的另一台 PC)而不是像www.site2.com这样的 url,Apache 将不知道它应该运行哪个站点,因此它总是选择它在 VHost 定义文件中找到的第一个站点并获取连接那里。

因此,如果您想从内部网络上的其他 PC 访问您的站点,您要么必须运行自己的 DNS 服务器(有点复杂),要么在其他每台 PC 上都需要设置其 HOSTS 文件以了解您的 2 个站点,即

假设您的 WAMPSevrer 在 192.168.1.10 上运行,您其他 PC 上的主机文件

192.168.1.10 www.site1.net 
192.168.1.10 www.site2.com 

现在这些其他 PC 可以使用正确的 URL,即www.site1.netwww.site2.com ,Apache 服务器将知道将连接发送到哪个站点。

现在我想你提到了一个电话。 这有点复杂,因为您无法在手机上访问 HOSTS 文件(如果您已越狱,则可能可以)

所以为此我使用了一些解决方法。

我使用 Fiddler,它是一个工具,用于从运行浏览器的 PC 上查看浏览器和服务器之间的线路。 但是您也可以将其用作代理我认为这是文档

基本上,您将其设置为侦听端口 8888 上的连接,然后在其现有脚本中添加一行,以告诉它在 8888 上看到连接时转到特定 url,因此您可以在手机中使用一个 url,例如192.168.1.10:8888到 site1.net 然后更改脚本,使其转到 site2.com

它有点令人费解,但对我有用。

回答第二个问题

您没有提及您使用的是什么版本的 WampServer 或 Apache,因此我在新行中添加了对该版本的测试。

您在虚拟主机的定义中犯了一些错误。 请参阅下面的更正

<VirtualHost *:80>
    ServerAdmin me@mysite.net
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory  "D:/wamp/www">
        AllowOverride All

        <IfDefine APACHE24>
            Require local
            Require ip 192.168.2      <- change to your subnet first 3 quartiles
        </IfDefine>

        <IfDefine !APACHE24>
            Order Deny,Allow
            Deny from all
            Allow from 127.0.0.1 localhost ::1 
            Allow from 192.168.2       <- ditto
        </IfDefine>
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin me@site1.net
    DocumentRoot "c:/wamp/www/site1"
    ServerName www.site1.net
    ServerAlias site1.net
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory  "D:/wamp/www/site1">
        AllowOverride All

        <IfDefine APACHE24>
            Require local
            Require ip 192.168.2  <- change to your subnet first 3 quartiles
    </IfDefine>

    <IfDefine !APACHE24>
            Order Deny,Allow
            Deny from all
            Allow from 127.0.0.1 localhost ::1 
            Allow from 192.168.2       <- ditto
        </IfDefine>
    </Directory>

</VirtualHost>

<VirtualHost *:80>
    ServerAdmin me@site2.com
    DocumentRoot "c:/wamp/www/site2"
    ServerName www.site2.com
    ServerAlias site2.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory  "D:/wamp/www/site2">
        AllowOverride All

        <IfDefine APACHE24>
            Require local
            Require ip 192.168.2  <- change to your subnet first 3 quartiles
        </IfDefine>

        <IfDefine !APACHE24>
            Order Deny,Allow
            Deny from all
            Allow from 127.0.0.1 localhost ::1 
            Allow from 192.168.2       <- ditto
        </IfDefine>
    </Directory>
</VirtualHost>

基本上你需要告诉每个 apache 哪些 IP 可以访问每个 vhosts 文件夹。 因此,如果您愿意,您可以保留修改后的端口,但保留<Directory>...</Directory部分。

还要检查你的 HOST 文件,当你写你的问题时,这可能是一个错字,但你说你的主机文件看起来像这样

127.0.0.1       localhost
127.0.0.1       www.site1.net
127.0.0.1       www.site3.com

应该是这样的:

127.0.0.1       localhost
127.0.0.1       www.site1.net
127.0.0.1       www.site2.com

这会很复杂,请不要使用相同的服务器IP地址或相同的服务器名称..每台计算机都有唯一的IP,因此请提供正确的IP并且不要复制您的项目的站点名称..如果您有192.168.1.1 site1.come 那么你应该为 site2.com 使用 192.168.1.100.. 127.0.0.1 只代表 1 个服务器 ip 和 1 个站点名称......请注意这些差异,因为在一个地址中调用两个人可能会导致一个和你期望的有 2 simultinously..谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM