无法从远程计算机访问wampserver 2.5

时间:2014-12-05 18:45:26

标签: apache wampserver

我决定让wamp工作!

我在win7 64bits机器上安装了wampserver 2.5。

在httdp.conf文件中,我只是注释了关于vhosts的行:

Include conf/extra/httpd-vhosts.conf

httpd-vhosts.conf包含:

<VirtualHost *:80>
    DocumentRoot "C:/Users/Alain/Dropbox/Website/exemples/Grafikart/Petsy_alain.dev"
    ServerName petsy.dev
    ServerAlias www.petsy.dev
    <Directory "C:/Users/Alain/Dropbox/Website/exemples/Grafikart/Petsy_alain.dev">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        <RequireAny>
            Require local
            Require ip 192.168.1
        </RequireAny>
    </Directory>
</VirtualHost>

(我也试过要求全部授予)

我首先安装了wampserver 2.5 64位。

我能够从我的本地计算机访问http://petsy.dev 但是当我尝试从局域网的其他机器访问http://192.168.1.16/petsy.dev时,我总是收到403错误(禁止):

[Thu Dec 04 14:43:08.519329 2014] [authz_core:error] [pid 11088:tid 776] [client 192.168.1.15:39975] AH01630: client denied by server configuration: C:/Users/Alain/Dropbox/Website/exemples/Grafikart/Petsy_alain.dev
[Thu Dec 04 14:43:08.635335 2014] [authz_core:error] [pid 11088:tid 776] [client 192.168.1.15:39975] AH01630: client denied by server configuration: C:/wamp/www/favicon.ico

当我在远程PC主机文件中添加以下行时,我远程访问petsy.dev:

192.168.1.16  petsy.dev

在这种情况下,我可以在远程计算机上使用“http://petsy.dev”访问服务器。

首先我不明白它在服务器端有什么变化,其次我不能满足于这个解决方案,因为我无法在智能手机上使用它。

由于我无法在任何地方找到答案,我终于尝试安装wampserver 2.5 32位!

同样的问题!但是有一个不同的错误:

我总是可以在本地访问我的petsy.dev网站但是现在,当我尝试远程访问它时,我收到404错误(未找到)!!!

以下是apache的访问日志 从我当地的机器:

xxxx::7d1a:xxxx:9672:xxxx - - [05/Dec/2014:19:22:25 +0100] "GET / HTTP/1.1" 200 40438

从我的远程机器:

192.168.1.15 - - [05/Dec/2014:19:22:30 +0100] "GET /petsy.dev/ HTTP/1.1" 404 295

httpd -T回答语法确定

httpd -S说:

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-vhosts.conf:23)
         port 80 namevhost localhost (C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-vhosts.conf:23)
                 alias localhost
         port 80 namevhost petsy.dev (C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-vhosts.conf:34)
                 alias www.petsy.dev
ServerRoot: "C:/wamp/bin/apache/apache2.4.9"
Main DocumentRoot: "C:/wamp/www/"
Main ErrorLog: "C:/wamp/logs/apache_error.log"
Mutex rewrite-map: using_defaults
Mutex authdigest-client: using_defaults
Mutex default: dir="C:/wamp/bin/apache/apache2.4.9/logs/" mechanism=default
Mutex authdigest-opaque: using_defaults
PidFile: "C:/wamp/bin/apache/apache2.4.9/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: APACHE24=Apache2.4

请,我做了哪个愚蠢的错误????

2 个答案:

答案 0 :(得分:0)

你不需要<RequireAny>所以试试这个

<VirtualHost *:80>
    DocumentRoot "C:/Users/Alain/Dropbox/Website/exemples/Grafikart/Petsy_alain.dev"
    ServerName petsy.dev
    ServerAlias www.petsy.dev
    <Directory "C:/Users/Alain/Dropbox/Website/exemples/Grafikart/Petsy_alain.dev">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require local
        Require ip 192.168.1
    </Directory>
</VirtualHost>

其他信息 我不认为您了解创建虚拟主机时发生的情况。

基本上,当Apache看到它配置了一个或多个虚拟主机时,你就会感觉Apache它是多个域名的服务器。该句中的重要部分是多个域名

这会导致Apache检查每个传入连接上的域名。然后,它会将域名与其中一个虚拟主机定义匹配,并将DocumentRoot 和可能的其他参数更改为该虚拟主机中设置的参数。

因此,重要的是您在用于访问Apache的其他PC的浏览器中使用匹配的域名,并使用其知道的域名。

这通常由真实互联网上的DNS服务器完成,但当您在自己的本地网络内,即安全地在路由器后面时,您必须使用其他方法。您可以设置自己的本地DNS服务器,但这非常复杂。

因此,简单的解决方案是在网络中的其他PC上使用HOSTS文件。

所以在另一台PC上(不是运行WAMPServer的PC),编辑\windows\system32\drivers\etc\hosts文件并添加

192.168.1.16  petsy.dev

然后重启或执行此操作以重新加载Windows dnscache

使用&#34;以管理员身份运行&#34;启动命令窗口并执行这两个命令来重新加载缓存

net stop dnscache
net start dnscache

现在您可以在非wampserver pc上使用浏览器中的正确域名,如此

http://petsy.dev

浏览器会发现petsy.dev存在于IP地址192.168.1.16上。当与192.168.1.16建立连接时,它将使用corretc域名即petsy.dev,apache将找到虚拟主机并根据正确文件夹中的VH配置和服务器页面设置所有内容。

答案 1 :(得分:0)

这是一个很棒的教程 Project Links do not work on Wamp Server
答案#1对我有用 我正在运行Windows 7 64位
我在分配给字母A
的高清上安装了wampserver2.5(64位) 我的所有开发站点都位于A:\ website
在A:\ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-vhosts.conf我有这个

<VirtualHost *:80>
    DocumentRoot "A:/websites"
    ServerName localhost
    ServerAlias localhost
    <Directory "A:/websites">
        AllowOverride All
        Require local
    </Directory>
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost.log" common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "A:/websites/example.dev/www
    ServerName example.dev
    ServerAlias www.example.dev
    <Directory "A:/websites/example.dev/www>
        AllowOverride All
        Require local
        Require ip 192.168.10
    </Directory>
</VirtualHost>

在运行wamp的计算机上,我调整了主机文件,如下所示 127.0.0.1 example.dev
:: 1 example.dev
在本地远程计算机上,我已将主机文件的条目添加为
192.168.10.100 example.dev(这是运行wamp的计算机的ip地址)
下一步是清除你的dns缓存
打开不是Web服务器的Windows框上的终端 输入“net stop dnscache”
输入“net start dnscache”
打开浏览器并将其指向example.dev,它可以正常工作 希望这有帮助