Josh Woelfel
Josh Woelfel

Reputation: 1969

Mac apache localhost giving 403 Forbidden

Im trying to set up my local environment on my new mac OSX 10.9. I know it has apache already installed, so i've been using that. No matter how I set up my httpd-vhosts.conf/hosts/httpd.conf files, I continuously get a 403 forbidden error when visiting localhost OR "test.com" on my browser. The error / files / other information is listed below.

This is the error I'm getting when visiting either web page

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.

My /private/etc/hosts file

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

My /private/etc/apache2/httpd.conf file

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

My /private/etc/apache2/extra/httpd-vhosts file

<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>

Other notes

When using the command 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

I don't know what to try at this point. I've spent several hours looking at tutorials and other questions people have posted. It looks like my files and permissions are correct!

Upvotes: 6

Views: 27521

Answers (4)

Seth Moore
Seth Moore

Reputation: 116

Verify every directory in the path to your DocumentRoot, not just the DocumentRoot itself, is searchable (+x permissions) for Apache. Upgrading my Mac OS reset my home directory to 700 permissions. Changing this to 755 fixed the issue for me.

Upvotes: 0

Sathish Sridharan
Sathish Sridharan

Reputation: 161

I just resolved this issue. Try adding 'Require all granted' instead of 'Allow from all'.

<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>

Upvotes: 16

Nik
Nik

Reputation: 337

After the last upgrade to MacOS HighSierra 10.13.4 I had the same message. I've tried different solutions posted around but the what really tipped me was an article mentioning that when you get this message it's usually just a matter of permissions. So in the end I just needed to make sure that the group and the owner of both the document root, that I don't keep under my profile path, and the children directory are owned by the same user and group specified in httpd.conf, are set to my group and username. The default values in httpd.conf are: _www and wheel respectively. If you're unsure about your user name use whoami on a terminal window.

If you're interested in keeping your files under your profile directory this guide may help you.

Upvotes: -1

wildptr
wildptr

Reputation: 17

when you set DocuemntRoot "/Users/xxx/xxx" on mac os, your must ensure your httpd User && Group have permission to read the directory.By default, /Users/xxx/xxx owner is root and group is admin, so you don't have the permission. If your directory group is wheel it maybe work.

Upvotes: 1

Related Questions