Wamp - 通过IP而不是本地主机访问项目



我尝试使我的项目"公开",以便我的局域网中的每个人都可以访问它。 目前,我只能通过http://localhost/project或其虚拟主机名访问我的项目,例如http://myVirtualHostName.

我需要项目在我的整个局域网中都可以访问,例如这样:

http://192.168.1.123/projecthttp://192.168.1.123/myVirtualHostName.

但是,如果我尝试从自己的客户端或 LAN 中的另一台计算机访问项目,我会403 Forbidden: You don't have permission to access /projectName/ on this server..


编辑: 我能够解决第一个问题,由于这个答案,我现在可以通过更改以下块来访问C:wamp64www下的链接C:wamp64binapacheapche2.4.33confextrahttpd-vhosts.conf

<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

。并在它之后重新启动 Apache。

现在我可以像这样C:wamp64www访问一个项目http:\192.168.1.123myProjekt.但我仍然不知道如何使用我的服务器 IP 地址访问虚拟主机。

如果我尝试http://192.168.1.123/myVhostName那么我会得到Not Found The requested URL /myVhostName was not found on this server.,即使为每个virtual host设置了Require all granted

我还重新启动了DNS服务器。


我该如何解决这个问题?

我正在使用 WAMP 3.1.3。

好的,首先,由于您似乎不了解虚拟主机是什么以及它的用途,我将从一点解释开始。

虚拟主机是一种让一个Apache为多个站点提供服务的方法,就好像您有多个Apache一样。正确配置后,Apache 会查看传入连接的域名,并尝试将其与 VH 定义匹配。如果可以,它从该 VH 中定义的DocumentRoot为站点提供服务。

如果它不能与域名匹配,它将提供定义文件中的第一个 VH。这就是为什么您将第一个定义设为localhost并始终将访问权限设置为Require local的另一个原因,这将告诉客户端如果他们只使用您的 WAMPSevrer的 IP 地址而不是有效的域名,您将无法访问。

从WAMPServer V3开始,甚至localhost也被定义为虚拟主机。

因此,首先保持 VH 定义localhost原样,就像这样,但要Require local,因为您永远不希望允许远程访问带有工具的 WAMPServer 主页,因为它无法从远程客户端正常运行,因为大多数工具都假设localhost当从客户端运行时将不存在,因为它始终假定在this PC即客户端上。

<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>

现在将您的真实站点定义为另一个 VH。我会假设它会被称为example.local但到处都将其更改为您希望该网站真正调用的任何名称。

<VirtualHost *:80>
ServerName example.local
ServerAlias www.example.local
DocumentRoot "${INSTALL_DIR}/www/example"
<Directory "${INSTALL_DIR}/www/example/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

注意:DocumentRoot文件夹甚至不必位于${INSTALL_DIR}/www/它可以在该磁盘上的任何位置,甚至可以完全位于另一个驱动器上。

现在你还说你有一个现场DNS服务器。因此,请管理员定义example.local并将其指向运行WAMPServer的PC的IP地址。这应该可以通过使用域名example.localwww.example.local从使用该 DNS 服务器的任何 PC 轻松访问它

如果您想要更高的安全性,您可能还希望使Require更具体,因此,如果站点仅在一个子网上运行,请将Require all granted修改为

Require ip 10.30.20

请注意,我只使用了 IPV4 地址的前 3 个四分位数,这将授予对该段中任何客户端 IP 的访问权限。

如有任何问题,请发表评论,我会尽快回复您。

我刚刚将行:文档根从:

c:/wamp64/www 

自:

c:/wamp64/www/myproject 

它对我有用!

最新更新