我正在尝试进行设置,以便可以从计算机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,但对这些事情不太了解)
此配置在本地计算机(服务器)上正常工作。即项目:浏览器地址栏中的81开启了网站。
现在在计算机B(客户端)上,我更改了hosts文件以包含服务器的IP以及虚拟主机的名称,如: -
192.168.1.7项目
现在当我输入项目时:81在客户端浏览器上..它将我带到服务器,但它没有带我到虚拟主机目录,而是将它带到默认目录..即在我的情况下是
C:\ XAMPP \ htdocs中
现在我陷入困境,无法让客户端指向当前目的地。 因此,任何人都可以建议我在这里做错了什么或我需要做的其他事情才能从客户端机器访问正确的虚拟主机站点。
提前感谢您提供任何帮助
答案 0 :(得分:18)
好的,所以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)其他的帮助你的姿势让你自己帮助.. :)所以保持帮助和摇摆。
答案 1 :(得分:2)
您是否尝试将端口包含在客户端主机的文件中?
192.168.1.7:81项目