Mac apache localhost给403 Forbidden

时间:2014-11-25 19:18:14

标签: macos apache localhost httpd.conf virtual-hosts

我试图在我的新mac OSX 10.9上设置我的本地环境。我知道它已经安装了apache,所以我一直在使用它。无论我如何设置我的httpd-vhosts.conf / hosts / httpd.conf文件,我在浏览器上访问localhost或“test.com”时都会不断收到403禁用错误。错误/文件/其他信息如下所示。

这是我访问任一网页时遇到的错误

Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

我的/ private / etc / hosts文件

127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost

127.0.0.1       test.com
127.0.0.1       www.test.com

我的/private/etc/apache2/httpd.conf文件

This file is in its original form besides the following changes:
Uncommented Include /private/etc/apache2/extra/httpd-vhosts.conf

我的/ private / etc / apache2 / extra / httpd-vhosts文件

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

<VirtualHost *:80>
        ServerName test.com
        ServerAlias www.test.com
        DocumentRoot “/Users/[my_name]/Sites/test”

        <Directory “/Users/[my_name]/Sites/test”>
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

其他说明

I've created a config file my user account in /private/etc/apache/users/
I've given that file read and write permissions to "everyone"
I've restarted apache after every save to any config file
I've reset the cache on my browser every time I make a change to these files
I have an index.html file set up in my /Users/[my_name]/Sites/test/ folder

使用命令sudo apachectl -t

Warning: DocumentRoot [/usr/\xe2\x80\x9c/Users/joshwoelfel/Sites/test\xe2\x80\x9d] does not exist
httpd: Could not reliably determine the server's fully qualified domain name, using Joshs-MacBook-Air.local for ServerName
Syntax OK

我不知道在这一点上要尝试什么。我花了几个小时看着人们发布的教程和其他问题。看起来我的文件和权限是正确的!

3 个答案:

答案 0 :(得分:9)

我刚刚解决了这个问题。尝试添加&#39;要求所有已授予的&#39;而不是“允许所有人”。

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot “/Users/[my_name]/Sites/test”

    <Directory “/Users/[my_name]/Sites/test”>
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Require all granted 
    </Directory>
</VirtualHost>

答案 1 :(得分:1)

当你在mac os上设置DocuemntRoot“/ Users / xxx / xxx”时,你必须确保你的httpd用户&amp;&amp;组有权读取目录。默认情况下,/ Users / xxx / xxx所有者为root,group为admin,因此您没有权限。如果您的目录组是滚轮,它可能会工作。

答案 2 :(得分:0)

在最后一次升级到MacOS HighSierra 10.13.4之后,我收到了相同的消息。我已经尝试了不同的解决方案,但真正让我感到惊讶的是一篇文章提到,当你收到这条消息时,它通常只是权限问题。所以最后我只需要确保文档根目录的组和所有者,我不会保留在我的配置文件路径下,并且子目录由<中指定的相同用户和组所有。 em> httpd.conf ,设置为我的组和用户名。 httpd.conf中的默认值分别为:_www和wheel。如果您不确定您的用户名是否使用         whoami 在终端窗口。

如果您有兴趣将文件保留在个人资料目录this guide may help you下。