设置新别名时,我获得Access Forbidden(错误403)

时间:2011-12-13 20:18:09

标签: xampp

我正在运行Windows 7,最近安装了XAMPP来构建开发环境。我在服务器方面做得不好,所以我在为项目设置别名时遇到了一些问题。

到目前为止,XAMPP正在运行,如果我转到localhost,我会收到XAMPP欢迎页面。我在apache install的“conf”文件夹中创建了一个“别名”文件夹。在那里,我添加了dev.conf,内容如下:

<Directory "C:\Users\my_user\My%20Documents\Aptana%20Studio%203%20Workspace\project">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from 127.0.0.1
</Directory>

Alias /dev "C:\Users\my_user\My%20Documents\Aptana%20Studio%203%20Workspace\project"

但是当我去“localhost / dev”时,我得到了:

  

禁止访问!

     

您无权访问请求的对象。它是   读取保护或服务器无法读取。

     

如果您认为这是服务器错误,请与网站管理员联系。

     

错误403

我尝试使用谷歌搜索,我在SO上发现了其他类似的问题,但我似乎无法弄明白。有人说你必须告诉它有权限,但在我指定的conf文件中允许它来自127.0.0.1。也许这是因为我的路径中有空格(虽然一些谷歌搜索告诉我%20的工作)。我曾设法创建一个到不同的文件夹并复制粘贴工作文件并更改了别名和路径并且它已经破坏所以它告诉我它可能与它们有关。

我查看了我的日志文件夹,找到了以下行:

  

[Tue Dec 13 14:59:20 2011] [错误] [client :: 1]客户拒绝了   服务器配置:C:/ Users / my_user / My%20Documents

我不确定它是否会被删除,因为错误消息只能是一定的长度,但这绝对不是我在dev.conf文件中添加的路径,我希望这可以使一些人更清楚一些因为我很沮丧,我不知道该怎么办。

7 个答案:

答案 0 :(得分:78)

我刚刚在Xampp的Windows安装上发现了与Aliases相同的问题。

解决403错误:

<Directory "C:/Your/Directory/With/No/Trailing/Slash">
   Require all granted
</Directory>

Alias /dev "C:/Your/Directory/With/No/Trailing/Slash"

默认的Xampp设置应该没问题。有些人遇到了在根目录中拒绝的问题,因此将目录标记翻转为:

<Directory "C:/Your/Directory/With/No/Trailing/Slash">
   Allow from all
   Require all granted
</Directory>

对此有所帮助,但当前版本的Xampp(撰写本文时为v1.8.1)并不需要它。

至于操作端口80的问题Xampp包含一个方便的Netstat按钮,用于发现使用您的端口的内容。解雇并修复冲突,我想它可能是IIS但不能确定。

答案 1 :(得分:28)

我正在使用XAMPP和Apache2.4,我有同样的问题。我想保留默认的xampp / htdocs文件夹,能够从locahost访问它并让虚拟主机指向我的开发区...

我的C:\xampp\apache\conf\extra\http-vhosts.conf文件的完整内容如下...

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

##NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs"
    ServerName localhost
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot "C:\nick\static"
    ServerName dev.middleweek.co.uk
    <Directory "C:\nick\static">
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>

然后我更新了我的C:\windows\System32\drivers\etc\hosts文件......

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1   dev.middleweek.co.uk
127.0.0.1       localhost

重新启动计算机,打开XAMPP控制面板并启动Apache。

现在在您的浏览器中打开自定义域,在上面的示例中,它将是http://dev.middleweek.co.uk

希望能帮助别人!

如果您希望能够在新的虚拟主机下查看目录列表,请在C:\xampp\apache\conf\extra\http-vhosts.conf中编辑您的VirtualHost块以包含“选项索引”,如下所示...

<VirtualHost *:80>
    DocumentRoot "C:\nick\static"
    ServerName dev.middleweek.co.uk
    <Directory "C:\nick\static">
        Allow from all
        Require all granted
        Options Indexes
    </Directory>
</VirtualHost>

干杯, 尼克

答案 2 :(得分:18)

这个问题已经过时了,虽然你设法使它成功但我觉得如果我明确你在这里提出的一些观点会有所帮助。

首先关于具有空格的目录名称。我一直在玩apache2配置文件,我发现,如果目录名称有空格,则用双引号将其括起来,所有问题都会消失。 例如......

    NameVirtualHost     local.webapp.org
    <VirtualHost local.webapp.org:80>
        ServerAdmin a.mhawila@gmail.com
        DocumentRoot "E:/Project/my php webapp"
        ServerName local.webapp.org
    </VirtualHost>

注意写入DocumentRoot行的方式。

其次是xampp禁止访问。我发现默认的xampp配置(..path到xampp / apache / httpd.conf)有一个如下所示的部分。

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

更改它并使其看起来如下所示。从xampp保存文件restart apache并解决问题。

    <Directory>
       Options Indexes FollowSymLinks Includes ExecCGI
       AllowOverride none
       Require all granted
    </Directory>

答案 3 :(得分:13)

试试这个

  

sudo chmod -R 0777 / opt / lampp / htdocs / testproject

答案 4 :(得分:6)

我终于开始工作了。

我不确定路径中的空间是否破坏了东西,但是我将Aptana安装的工作区更改为没有空格的东西。

然后我卸载了XAMPP并重新安装它,因为我在想,也许我在某处发生了一个错字而没有注意到,并认为我应该从头开始工作。

结果显示Windows 7在某处使用端口80的服务阻止apache启动(给它-1)错误。所以我改变了它侦听端口8080的端口,没有更多的冲突。

最后我重新启动了我的计算机,由于某种原因,XAMPP不喜欢我搞乱ini文件而只是重新启动apache并没有做到这一点。

无论如何,这是有史以来最令人沮丧的一天,所以我真的希望我的答案最终会帮助别人!

答案 5 :(得分:3)

Apache 2.4虚拟主机破解

1.在http.conf中指定端口,在“Listen”

下面
Listen 80
Listen 4000
Listen 7000
Listen 9000
  1. 在httpd-vhosts.conf中

    <VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html"  
    ServerName hitesh_web.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    
    <Directory "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html">
    Allow from all
    Require all granted
    </Directory>
    
    </VirtualHost>
    

    这是第二个虚拟主机

    <VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "E:/dabkick_git/DabKickWebsite"
    ServerName  www.my_mobile.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    
    <Directory "E:/dabkick_git/DabKickWebsite">
     Allow from all
     Require all granted
     </Directory>
    </VirtualHost>
    
  2. 在windows os“C:\ Windows \ System32 \ drivers \ etc \ host.ics”的hosts.ics文件中

    127.0.0.1             localhost
    127.0.0.1             hitesh_web.dev
    127.0.0.1             www.my_mobile.dev
    127.0.0.1             demo.multisite.dev
    
  3. 4.现在在浏览器中键入您的“域名”,它将ping documentRoot路径中指定的特定文件夹

    5.如果要访问特定端口中的那些文件,请将httpd-vhosts.conf中的80替换为如下所示的端口号,然后重新启动apache

       <VirtualHost *:4000>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html"
    ServerName hitesh_web.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    
    <Directory "C:/Users/Vikas/Documents/NetBeansProjects/slider_website_hitesh/public_html">
    Allow from all
    Require all granted
    </Directory>
    
    </VirtualHost>
    

    这是第二个vhost

    <VirtualHost *:7000>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "E:/dabkick_git/DabKickWebsite"
    ServerName  www.dabkick_mobile.dev
    ErrorLog "logs/dummy-host2.example.com-error.log"
    CustomLog "logs/dummy-host2.example.com-access.log" common
    
    <Directory "E:/dabkick_git/DabKickWebsite">
    Allow from all
    Require all granted
    </Directory>
    </VirtualHost>
    

    注意:对于给定虚拟主机的端口号,您必须在浏览器中ping“http://hitesh_web.dev:4000/”或   “http://www.dabkick_mobile.dev:7000/

    6.完成所有这些更改后,您必须分别保存文件并重启apache。

答案 6 :(得分:1)

如果您已通过Bitnami在Xampp(在Linux上)上安装了模块并更改了chown设置,请确保/opt/lampp/apps/<app>/htdocstmp用户组为daemon其他兄弟文件和文件夹chown编辑给您安装的用户,例如cd /opt/lampp/apps/<app>sudo chown -R root:root .,然后是sudo chown -R root:daemon htdocs tmp