WAMP 2.5 (Apache 2.4.9) 允许从 LAN 上的所有计算机进行访问

Posted

技术标签:

【中文标题】WAMP 2.5 (Apache 2.4.9) 允许从 LAN 上的所有计算机进行访问【英文标题】:WAMP 2.5 (Apache 2.4.9) enable access from all computer on LAN 【发布时间】:2016-03-25 16:37:38 【问题描述】:

我在本地使用 WAMP 构建了 2 个网站,我希望让本地网络中的任何人都可以访问它。

我在 httpd-vhosts.conf 中设置了 2 个虚拟主机,配置如下:

#Vistage
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/wamp/www/vistagebusinessexpo.com"
    ServerName vistagebusinessexpo.local
    ServerAlias www.vistagebusinessexpo.local
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    <Directory  "C:/wamp/www/vistagebusinessexpo.com">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
    </Directory>
</VirtualHost>

#CaterCon
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "c:/wamp/www/catercon.com"
    ServerName catercon.local
    ServerAlias www.catercon.local
    ErrorLog "logs/dummy-host2.example.com-error.log
    CustomLog "logs/dummy-host2.example.com-access.log" common
    <Directory  "C:/wamp/www/catercon.com">
        AllowOverride All
        Options Indexes FollowSymLinks
        Allow from 127.0.0.0/8 localhost ::1 10.1.1
    </Directory>
</VirtualHost>

我的Windows/System32/drivers/etc/hosts文件配置如下:

127.0.0.1       localhost
127.0.0.1       vistagebusinessexpo.local
::1             vistagebusinessexpo.local
127.0.0.1       catercon.local
::1             catercon.local

问题是每次我尝试从我们网络中的任何其他计算机连接时,我都会收到“错误 403 访问被拒绝/禁止”

到目前为止,我尝试了多种建议:

点击“Put Online”按钮并尝试使用 IPAdress/website.local 访问网站 修改 httpd.conf 文件以允许访问我们本地网络上的所有 IP 将 httpd.conf 文件修改为“allow from allow”

现在我的解决方案已经用完了

【问题讨论】:

【参考方案1】:

好的,

第 1 点: 一旦您配置了自己的虚拟主机,Put Online and Put Offline 菜单的使用就变得无关紧要了,因为 Apache 将忽略在 httpd.conf 文件中配置的 localhost,即唯一通过使用这些菜单修改的东西。

第 2 点:您应该真正将 localhost 配置为虚拟主机以及您的其他站点。它应该是定义文件中的第一个 VH,因此将其设置为默认站点,如果有人使用您服务器的 IP 地址,只要您将其配置为仅Require local,他们就会获得“不允许访问”。

第 3 点:出于某种原因,您在一个 VH 中使用 Apache 2.2 访问语法,而在另一个 VH 中使用 2.4。当您使用 Apache 2.4 时,请坚持使用 2.4 语法。如果您在 Apache 中激活了 mod_access_compat.so,则 2.2 语法确实有效,但何必打扰

Point5:您的每个 VHOST 现在都可以单独配置,但必须手动完成(编辑并重新启动 Apache)

所以我可以建议你试试这个作为你的httpd-vhosts.conf 文件

#localhost
# Always have this as the first VHOST
# Never have access set to anything other than 'require local'
# The any access using ip address of your server will get sent here
## and get a Not Allowed Error
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot c:/wamp/www
    <Directory  "c:/wamp/www/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

#Vistage
<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/vistagebusinessexpo.com"
    ServerName vistagebusinessexpo.local
    ServerAlias www.vistagebusinessexpo.local
    ErrorLog "logs/vistagebusinessexpo-error.log"
    CustomLog "logs/vistagebusinessexpo-access.log" common
    <Directory  "C:/wamp/www/vistagebusinessexpo.com">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
        Require ip 10.1.1
    </Directory>
</VirtualHost>

#CaterCon
<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/catercon.com"
    ServerName catercon.local
    ServerAlias www.catercon.local
    ErrorLog "logs/catercon-error.log
    CustomLog "logs/catercon-access.log" common
    <Directory  "C:/wamp/www/catercon.com">
        AllowOverride All
        Options Indexes FollowSymLinks
        Require local
        Require ip 10.1.1
    </Directory>
</VirtualHost>

【讨论】:

感谢您的提示。我更正了 httpd-vhosts.conf 中的不同错误。现在当我输入 localhost/ 我得到 wamp 主页。这是伟大的。感谢那。但是,我仍然无法从其他计算机访问该网站。我什至没有得到 403 禁止了。我收到一条消息说“无法显示此页面” 我咨询了我的 IT 部门,我们确实有一个 DNS 服务器 那么您将让 IT 人员注册这两个站点,以便其他 PC 可以使用您分配给每个站点的域名。然后 Apache 在浏览器中使用域名时会知道去哪里 非常感谢 RiggsFolly!这非常有用,而且非常具体。【参考方案2】:

在 apache 2.4 中,通过 Require all 为文件授予的所有 Require local 更改:

C:/-> wamp64 -> bin -> apache 2.4.X -> config -> httpd.conf
C:/-> wamp64 -> bin -> apache 2.4.X -> config -> extra -> httpd-vhost.conf

【讨论】:

【参考方案3】:

我这样做了,它有效! 我知道在 httpd.conf 中创建虚拟主机不是一个好习惯,但经过一番头疼之后,它工作了,并且同一网络中的 PC 也可以访问我的网站:

<VirtualHost *:80>
ServerName localhost
DocumentRoot c:/wamp/www
<Directory  "c:/wamp/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>

这是针对本地主机的。

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/mysite/"
    DirectoryIndex index.php
    ServerName mysite.com
    <Directory "c:/wamp/www/mysite/">
            AllowOverride All
        Options Indexes FollowSymLinks
        Require all granted     
    </Directory>
    </VirtualHost>

这适用于网站。与 RiggsFolly 的答案非常相似。

同样在同一个文件中将&lt;Directory /&gt;修改为:

<Directory />
AllowOverride All
Require all denied
</Directory>

最后在 C:\Windows\System32\drivers\etc\host 中添加127.0.0.1 mysite.com

如果其他电脑可以访问您的网站,只需添加他们的主机文件:

your-ip    mysite.com

问候。

【讨论】:

以上是关于WAMP 2.5 (Apache 2.4.9) 允许从 LAN 上的所有计算机进行访问的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 WAMP 中 phpMyAdmin 中所说的语言?

wamp 2.5 apache设置文件注释

WAMP 2.5 无法访问局域网的解决方法

WAMP 虚拟主机不工作

Wamp 2.5 中的“WAMP/vhosts”文件夹是啥意思?

window下安装apache---使用wamp