Wamp 服务器上线不工作

Wamp server Put Online is not working

我按照以下步骤设置了 Wamp,但无法从网络中的不同机器访问服务器。我做错了什么?

  1. 已安装 Wamp 64 位版本 3.0.4,它随 Apache 版本 2.4.18 一起提供
  2. 启动Wamp服务器,右击系统托盘图标,选择Wamp settings下的Menu item : Online / Offline
  3. 单击(左键单击)系统托盘图标并选择 Put Online
  4. 当我尝试从网络中的另一台机器访问服务器时,服务器 return 一个带有错误消息 You don't have permission to access / on this server
  5. 的错误页面

我直接编辑httpd-vhosts.conf文件,重启所有服务,还是报同样的错误。下面是httpd-vhosts.conf文件的内容和我的系统IP

httpd-vhosts.conf

#
# Virtual Hosts
#

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot C:/Users/dinesh/Softwares/Wamp64/www
    <Directory  "C:/Users/dinesh/Softwares/Wamp64/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
        Require ip 100.97.67
    </Directory>
</VirtualHost>

系统IP

mintty> ipconfig | grep IPv4
   IPv4 Address. . . . . . . . . . . : 100.97.67.11
mintty>

Put Online/ Offline 菜单项已设为可选,默认情况下不可见,因为它在 WAMPServer 3 中基本上不再起作用。

在 WAMPServer 3 中,现在有一个为 localhost 定义的虚拟主机,它控制着 httpd.conf 文件中定义的本地主机。

如果您查看新的菜单结构,Apache 菜单中有一个名为 httpd-vhosts.conf 的新菜单项,请参见下文

这会将 Apache 虚拟主机定义文件加载到您的默认编辑器中。它应该看起来像这样:

#
# Virtual Hosts
#

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot D:/wamp/www
    <Directory  "D:/wamp/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

要允许从您网络上的特定计算机访问,请添加例如

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot D:/wamp/www
    <Directory  "D:/wamp/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
        Require ip 192.168.1.100
        Require ip 192.168.1.101
    </Directory>
</VirtualHost>

或者要允许网络中的所有 PC 访问,只需将 4 个四分位数中的前 3 个添加到 require,该子网内的任何 ip 都将被允许

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot D:/wamp/www
    <Directory  "D:/wamp/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
        Require ip 192.168.1
    </Directory>
</VirtualHost>

If you do not see this menus then you will need to upgrade to WAMPServer 3.0.5 from here https://sourceforge.net/projects/wampserver/files/WampServer%203/WampServer%203.0.0/Updates/wampserver3_x86_x64_update3.0.5.exe/download It is a simple upgrade over WAMPServer 3.0.4

或者,直接编辑 \wamp\bin\apache\apache{version}\conf\extra\httpd-vhosts.conf 文件。

Dont forget to restart Apache after changing this file.

 #
 # Virtual Hosts
 #

    <VirtualHost *:80>
        ServerName localhost
        DocumentRoot D:/wamp/www
        <Directory  "D:/wamp/www/">
            Options +Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            Require local
        </Directory>
    </VirtualHost>
 #

替换为

 #
 # Virtual Hosts
 #

    <VirtualHost *:80>
        ServerName localhost
        DocumentRoot D:/wamp/www
        <Directory  "D:/wamp/www/">
            Options +Indexes +FollowSymLinks +MultiViews
            AllowOverride All
            #Require local
        </Directory>
    </VirtualHost>
 #

如果您已完成其他答案建议的所有操作,但仍然无法正常工作,请确保您的端口 80 未被其他应用程序使用。

快速查看 运行 命令提示符中的 netstat -a -b 命令。

在我的例子中,Skype 使用的是端口 80,我可以通过进入 Skype 的高级设置来停止。

我有一个恼人的问题。 Windows 防火墙有让 apache 通过的规则,但它是 apache 的旧版本,因此不适用于新版本。必须更新规则中的 apache 版本并将其添加到专用部分。 Windows10.