apache: don't have permission to access / on t

2019-03-14 10:20发布

问题:

For example, the document root of virtualHost is /var/www, and server name is aaa.com. However, apache will tell me forbidden if I access the server with localhost and aaa.com. If I change the Directory option in http.conf to /var/www, apache will work well. I don't know why?

I want to set Directory option in every httpd-vhosts.conf, not in httpd.conf, how I can do it?

Here is my http.conf:

Here is my httpd-vhosts.conf:

回答1:

In http.conf file you should define options for only <Directory />. All the options of VirtualHosts you should define in httpd-vhosts.conf files. Something like:

httpd.conf:

DocumentRoot "/var/www"

<Directory />
        Order deny,allow
        Deny from all
        Options None
        AllowOverride None
</Directory>

httpd-vhosts.conf:

ServerName aaa.com
DocumentRoot /var/www

<Directory /var/www>
        Options FollowSymLinks Includes
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>


回答2:

This configuration was valid for apache version 2.2

First check your apache version by typing apachectl -V in your terminal.

If it shows something like this

Server version: Apache/2.4.27 (Ubuntu)
Server built:   2018-04-18T14:20:05

then your apache version has updated but the conf you are using is deprecated.

So instead of

2.2 configuration:

Order allow,deny
Allow from all

use this:

2.4 configuration:

Require all granted

For further documentation related to the upgrade, follow the official docs:

http://httpd.apache.org/docs/current/upgrading.html



回答3:

2.4 configuration:

<Directory />

Options All
AllowOverride All

</Directory>


标签: apache vhosts