remy
remy

Reputation: 1305

apache: don't have permission to access / on this server. when I am using virtualhost

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

Upvotes: 2

Views: 49568

Answers (3)

Ryosuke Hujisawa
Ryosuke Hujisawa

Reputation: 2872

2.4 configuration:

<Directory />

Options All
AllowOverride All

</Directory>

Upvotes: 1

hacksdump
hacksdump

Reputation: 71

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

Upvotes: 6

s.webbandit
s.webbandit

Reputation: 17020

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>

Upvotes: 12

Related Questions