[CentOS 7 Apache]: Permission denied: file permissions deny server access

Whenever I configure Apache on CentOS 7, most of the time I get “(13) Permission denied: file permissions deny server access” error as below:

[Fri Nov 12 06:29:24.901157 2021] [core:error] [pid 8287] (13)Permission denied: [client 192.168.10.12:15979] AH00132: file permissions deny server access: /var/www/html/admin/images/logo.png

How to fix file permissions deny server access in Apache

Step 1: Check for the below Apache configuration which will block access to all files and URLs.

<Directory />
     Order deny,allow
     Deny from all
 </Directory>

Instead, it should be like:

<Directory />
     Order allow,deny
     Allow from all
 </Directory>

Step 2: Check Read/Write Permissions of your website’s root folder and files required by Apache. To provide permissions for Apache to read/write to the files/folders, run the below command:

# chmod -R 755 /var/www/html
-R option in the above command

will recursively update the user permissions of all files & folders in your webite’s root location.

Step 3: Check for the website’s root folder/file ownership. The ownership should be of Apache(www-data or apache). First, find out the user used by Apache process on your system by the following command:

# egrep -iw --color=auto '^user|^group' /etc/httpd/conf/httpd.conf

or

# ps aux | egrep '([a|A]pache|[h|H]ttpd)' | awk '{ print $1}' | uniq | tail -1

Now change the ownership accordingly using the below command:

# chown -R www-data:root /var/www/html

or

# chown -R apache:root /var/www/html

Step 4: Check for SELinux (Security-Enhanced Linux). You may need to use chcon command to set the security context of your website’s root directory as below:

# chcon -R -h -t httpd_sys_content_t /var/www/html
Updated on November 12, 2021

Was this article helpful?

Related Articles

Leave a Comment