12

我正在尝试进行设置,以便我可以从计算机 B 访问计算机 A 中虚拟主机上的网站。A 和 B 都在同一个网络上。我在 Win 7 上使用 xampp。

因此,随着问题的发生,计算机 A(服务器)在 httpd-vhosts.conf 文件中具有如下虚拟主机配置。

NameVirtualHost project:81

<VirtualHost project:81>

    DocumentRoot "D:/work/website"
    ServerName project:81
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>

(使用端口 81 作为端口 80 运行 IIS,但是对这些东西不太了解)

此配置在本地机器(服务器)上运行良好。ie project:81 在浏览器的地址栏中打开了它应该的网站。

现在在计算机 B(客户端)上,我更改了 hosts 文件以包含服务器的 IP 以及虚拟主机的名称,例如:-

192.168.1.7项目

现在当我在客户端浏览器上输入 project:81 .. 它带我到服务器但它没有带我到虚拟主机目录,而是带到默认目录.. 即在我的情况下

C:\xampp\htdocs

现在我被卡住了,无法让客户端指向当前目的地。因此,任何人都可以建议我在这里做错了什么,或者我需要做些什么才能从客户端机器访问正确的虚拟主机站点。

提前感谢您的帮助

4

2 回答 2

19

好的,所以 Seto El Kahfi 对我非常老的问题的回答让我在 Apache 的网站上进行了更多的研究和阅读。

所以我得到的是,我的 NameVirtualHost 指令不正确。所以取而代之的是,

NameVirtualHost project:81

<VirtualHost project:81>

    DocumentRoot "D:/work/website"
    ServerName project:81
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>

我必须做的就是这个。

NameVirtualHost *:81

<VirtualHost *:81>

    DocumentRoot "D:/work/website"
    ServerName project
    <Directory "D:/work/website">
    Options Indexes FollowSymLinks Includes ExecCGI    
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
</VirtualHost>

注意'*',我也可以在那里使用IP地址。(在这种情况下,我的服务器(机器A)本地IP)都可以工作。现在我所要做的就是在客户端机器上输入“project:81”,我得到了我的眼睛希望看到的东西.. :)

我从中得到的东西很少。

1)如何使用NameVirtualHost(或者它的目的基本上是什么。)。在这里阅读更多 http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost 这个也不错 http://www.thegeekstuff.com/2011/07/apache-virtual-host/

2)您可以通过命令行使用它:

httpd -D DUMP_VHOSTS

了解你的虚拟主机是如何设置的(如果你的设置有问题,也会给你一些关于优先级的警告)

3)别人帮助你的姿态让你帮助自己.. :) 所以继续帮助和摇摆。

于 2013-04-19T19:49:55.307 回答
1

您是否尝试在客户端主机的文件中包含端口?

192.168.1.7:81 项目

于 2013-04-17T09:30:30.947 回答