【问题标题】:you don't have permission to access [custom alias] on this server您无权访问此服务器上的 [自定义别名]
【发布时间】:2014-11-28 00:04:56
【问题描述】:

任何人都可以帮助解决以下问题: 我正在使用 wamp 在我的 chrome 浏览器中运行项目。 添加指向我的项目目录 c:/dev/myProject 的 newAlias 之后 我收到禁止消息:您无权访问此服务器上的 /newAlias。 我可以访问默认别名,例如 phpmyadmin、webgrind... 但我无法访问我自己的。 我在位于 c:/wamp 的 Win 8.1 64 位上使用 WampServer 版本 2.5 64 位。 我从网上尝试了基本的东西,但没有运气。 有什么建议吗?

编辑:newAlias 的内容:

Alias /bs1/ "c:/_DEV_/git/NewProject/www/" 

<Directory "c:/_DEV_/git/NewProject/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>

【问题讨论】:

  • 所以显示\wamp\alias\newalias.conf的内容。编辑问题,不要放在评论中

标签: wamp wampserver


【解决方案1】:

请勿更改您的 httpd.conf 的该部分。这几行控制对安装 Apache 的驱动器的根文件夹的访问。因此,您只需通过方便的 hack 就可以完全访问任何人。

通过 Apache 保护访问的过程是拒绝对根文件夹及以下所有内容的所有访问,然后有选择地允许特定站点访问驱动器的特定区域/文件夹。

更好的解决方案是将httpd.conf 改回原来的样子,并在您的别名定义中进行更改。像这样:-

Alias /bs1 "c:/_DEV_/git/NewProject/www/" 

<Directory "c:/_DEV_/git/NewProject/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Require local         <-- to develop on this PC
    Require ip 192.168.1  <-- to access the server from another PC on your network
    Require all granted   <-- to allow the world to see the beauty of your site
</Directory>

使用虚拟主机来控制每个站点而不是 Alias 的站点实际上是一个更好的主意。

这是一个原因和方法:- WAMPServer 2.5 The Homepage, Your Projects Menu and the need for Virtual Hosts

【讨论】:

    【解决方案2】:

    我已将 WAMP 从 2.2.22 更新到 2.4.9,发现新别名不起作用(与您的错误消息相同)。

    检查像phpmyadmin这样的默认别名,我发现了这个:

    Alias /phpmyadmin "c:/wamp/apps/phpmyadmin4.1.14/"
    
    # to give access to phpmyadmin from outside 
    # replace the lines
    #
    # Require local
    #
    # by
    #
    # Require all granted
    #
    
    <Directory "c:/wamp/apps/phpmyadmin4.1.14/">
       Options Indexes FollowSymLinks MultiViews
       AllowOverride all
      <IfDefine APACHE24>
        Require local
      </IfDefine>
      <IfDefine !APACHE24>
        Order Deny,Allow
          Deny from all
          Allow from localhost ::1 127.0.0.1
        </IfDefine>
      php_admin_value upload_max_filesize 128M
      php_admin_value post_max_size 128M
      php_admin_value max_execution_time 360
      php_admin_value max_input_time 360
    </Directory>
    

    如果您看到文件的内容,您会注意到 &lt;IfDefine APACHE24&gt;&lt;IfDefine !APACHE24&gt; 条件。所以我改变了我的别名 .conf 文件 from:

    Alias /svn "c:/work/website-svn/" 
    
    <Directory "c:/work/website-svn/">
        Options Indexes FollowSymLinks MultiViews
    
        AllowOverride all
        Order allow,deny
        Allow from all
    
    </Directory>
    

    收件人:

    Alias /svn "c:/work/website-svn/" 
    
    <Directory "c:/work/website-svn/">
        Options Indexes FollowSymLinks MultiViews
    
        Require local
    
    </Directory>
    

    这解决了我的问题,我希望它能解决你的问题。

    【讨论】:

    • 这个答案应该被接受。 WAMP 2.5 附带 Apache 2.4,它使用Require 进行访问控制。 Apache 2.2 使用了Order, Deny, Allow, Satisfy 指令。有关从 Apache 2.2 升级到 2.4 的信息,请参见此处:httpd.apache.org/docs/2.4/upgrading.html
    • WAMP 在添加别名时不应该考虑这种变化吗?默认情况下,它使用旧语法。
    【解决方案3】:

    我不是这方面的专家,但上面的答案似乎是我授予访问我的整个计算机的权限...所以尝试修改上面的答案,只允许访问我的别名文件夹所在的位置...

    所以改为...转到 httpd.conf 文件...并搜索...

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

    并在其下方添加以下内容

    <Directory "c:/path-to-your-alias-folder...">
       AllowOverride none
       Require all granted
    </Directory>
    

    这对我有用,我认为它可能更安全...再次,我不是这里的专家...只是试图使其工作...

    【讨论】:

      【解决方案4】:

      为了允许您的服务器和 wamp 的权限,您需要 3 个步骤,请确保这 3 件事之后您可以使用 IP 地址从其他网络访问您的站点,例如 http://192.168.1.1/yoursitefoldername (192.168.1.1 是您的计算机或 vps ip 地址“yoursitefoldername”是您网站的文件夹名称,应该在您的 wamp->www 文件夹中)

      1.

      首先 TCP 和 UDP 数据包必须允许端口 80 和 443。为此,请在 Windows 防火墙上为端口 80 和 443 为 TPC 和 UDP 创建 2 个入站规则。 (或者如果允许入站规则,您可以禁用整个防火墙进行测试,但永久解决方案)

      2.

      如果您使用的是 WAMPServer 3,请参阅答案底部

      对于 WAMPServer 版本

      您需要更改 Apache 上的安全设置以允许从其他任何地方进行访问,因此请编辑您的 httpd.conf 文件。

      将此部分更改为:

      #   onlineoffline tag - don't remove
           Order Deny,Allow
           Deny from all
           Allow from 127.0.0.1
           Allow from ::1
           Allow from localhost
      

      收件人:

      #   onlineoffline tag - don't remove
          Order Allow,Deny
            Allow from all
      

      如果“全部允许”行不适合您,请使用“要求全部授予” 那么它会为你工作。

      WAMPServer 3 有不同的方法

      在 WAMPServer 的第 3 版和 > 中,为 localhost 预定义了一个虚拟主机,因此根本不要修改 httpd.conf 文件,保持原样。

      使用菜单编辑httpd-vhosts.conf 文件。

      应该是这样的:

      <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 all granted
          </Directory>
      </VirtualHost>
      

      希望您已经为您的项目创建了一个虚拟主机,而不是为您的站点使用wamp\www 文件夹。在这种情况下,不要理会 localhost 定义,只对您的虚拟主机进行更改。

      3. 进行此更改后不要忘记重新启动 Wamp 或 Apache 的所有服务

      【讨论】:

        【解决方案5】:

        我找到了一个适合我的解决方案。 在 httpd.conf 我改变了:

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

        <Directory />
            AllowOverride none
            Require all granted
        </Directory>
        

        这解决了问题并允许我访问我的自定义别名。

        【讨论】:

          【解决方案6】:

          我建议您考虑改为设置虚拟主机。这需要几分钟,但它更防弹。 RiggsFolly 对类似问题的回答在细节、严谨性和实用性方面非常出色:

          Project Links do not work on Wamp Server

          【讨论】:

            猜你喜欢
            • 2013-06-30
            • 2019-02-22
            • 2017-05-04
            • 2015-10-06
            • 2015-10-07
            • 2012-12-08
            • 2017-05-30
            相关资源
            最近更新 更多