如何使用ip访问为多个站点配置的Wamp中的其他站点

问题描述 投票:1回答:2

我正在使用wamp进行本地开发,并且我已经配置了环境以处理多个站点,但是我想使用IP地址访问特定站点,我不知道是否必须在添加IP地址后添加端口127.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进入了本地主机,即站点1,然后我无法访问site2。

但是只有www.site.net或www.site2.com可以在运行wamp的机器上工作。

编辑。这是尝试过的。

我在httpd.confi的'listen'部分上放置了一些端口;

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却没有找不到此站点所在的服务器目录。

networking ip localhost wamp wampserver
2个回答
2
投票

确定

[如果您使用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上查看浏览器和服务器之间的往来情况。但您也可以将其用作代理I think this is the documentation

[基本上,您将其设置为侦听端口8888上的连接,然后在其现有脚本中添加一行,以告诉它在看到8888上的连接时转至特定的网址,因此可以在像192.168.1.10:8888这样的电话进入site1.net,然后更改脚本,使其转到site2.com

有点混乱,但对我有用。

回答第二个问题

您没有提到正在使用的WampServer或Apache版本,所以我在新行中添加了对该版本的测试。

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

<VirtualHost *:80>
    ServerAdmin [email protected]
    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 [email protected]
    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 [email protected]
    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

0
投票

会很复杂,请不要使用同一台服务器的IP地址或同一台服务器的名称。每台计算机都有唯一的IP,因此请提供正确的IP,并且不要重复使用您的项目的站点名称。 1.1 for site1.come,则应将192.168.1.100用于site2.com。127.0.0.1仅代表1个服务器ip和1个站点名..请注意这些区别,因为在一个地址中呼叫两个人可能会导致一个您期望有2个。.谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.