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

2019-03-14 09:30发布

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:

enter image description here

Here is my httpd-vhosts.conf:

enter image description here

标签: apache vhosts
3条回答
欢心
2楼-- · 2019-03-14 10:10

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楼-- · 2019-03-14 10:11

2.4 configuration:

<Directory />

Options All
AllowOverride All

</Directory>
查看更多
Melony?
4楼-- · 2019-03-14 10:18

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>
查看更多
登录 后发表回答