skip to Main Content

I’m installing a Laravel app on a Centos 7 distro. I’m using PHP 7.2 and I’ve successfully installed apache and my project.

I was able to get the Apache splash page to show but as soon as I point my virtual host to my laravel public folder I get file permission errors in apache2 logs.

I’ve made both my public and storage folders read/write/executable by all for a short period and I am still getting the errors.

My virtual host:

<VirtualHost *:80>

DocumentRoot /var/www/html/checkers/public

<Directory /var/www/html/checkers/public>
    Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

My permissions (after temporary chmod 777 on public and bootstrap):

drwxr-xr-x. 13 root root   4096 Jul  6 03:16 .

drwxr-xr-x.  3 root root     22 Jul  6 03:16 ..

drwxr-xr-x.  6 root root    106 Jul  6 03:16 app

-rw-r--r--.  1 root root   1686 Jul  6 03:16 artisan

drwxrwxrwx.  3 root root     34 Jul  6 03:16 bootstrap

-rw-r--r--.  1 root root   1477 Jul  6 03:16 composer.json

-rw-r--r--.  1 root root 143918 Jul  6 03:16 composer.lock

drwxr-xr-x.  2 root root    247 Jul  6 03:16 config

drwxr-xr-x.  5 root root     72 Jul  6 03:16 database

-rw-r--r--.  1 root root    651 Jul  6 03:16 .env.example

drwxr-xr-x.  8 root root    198 Jul  6 03:22 .git

-rw-r--r--.  1 root root    111 Jul  6 03:16 .gitattributes

-rw-r--r--.  1 root root    155 Jul  6 03:16 .gitignore

-rw-r--r--.  1 root root   1022 Jul  6 03:16 package.json

-rw-r--r--.  1 root root   1134 Jul  6 03:16 phpunit.xml

drwxrwxrwx.  4 root root    116 Jul  6 03:16 public

-rw-r--r--.  1 root root   3675 Jul  6 03:16 readme.md

drwxr-xr-x.  5 root root     45 Jul  6 03:16 resources

drwxr-xr-x.  2 root root     75 Jul  6 03:16 routes

-rw-r--r--.  1 root root    563 Jul  6 03:16 server.php

drwxr-xr-x.  5 root root     46 Jul  6 03:16 storage

drwxr-xr-x.  4 root root     83 Jul  6 03:16 tests

drwxr-xr-x. 37 root root   4096 Jul  6 03:22 vendor

-rw-r--r--.  1 root root    549 Jul  6 03:16 webpack.mix.js

The errors in /etc/httpd/logs/error_log:

[php7:error] [pid 9120] [client 192.168.10.1:46658] PHP Fatal error:
Uncaught ErrorException:
file_put_contents(/var/www/html/checkers/storage/framework/views/27ab4a7b5ea3854dc076406e3c218364a7743be0.php):
failed to open stream: Permission denied in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122nStack
trace:n#0 [internal function]:
IlluminateFoundationBootstrapHandleExceptions->handleError(2,
‘file_put_conten…’, ‘/var/www/html/c…’, 122, Array)n#1
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122):
file_put_contents(‘/var/www/html/c…’, ‘s…’, 0)n#2
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122):
IlluminateFilesystemFilesystem->put(‘/var/www/html/c…’, ‘s…’)n#3
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51):
IlluminateViewCompilersBladeCompiler->compile(‘/var/www/html/c…’)n#4
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Vi in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
on line 122
[Fri Jul 06 03:41:01.295172 2018] [php7:error] [pid 9120] [client 192.168.10.1:46658] PHP Fatal error: Uncaught ErrorException:
file_put_contents(/var/www/html/checkers/storage/framework/views/27ab4a7b5ea3854dc076406e3c218364a7743be0.php):
failed to open stream: Permission denied in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122nStack
trace:n#0 [internal function]:
IlluminateFoundationBootstrapHandleExceptions->handleError(2,
‘file_put_conten…’, ‘/var/www/html/c…’, 122, Array)n#1
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122):
file_put_contents(‘/var/www/html/c…’, ‘s…’, 0)n#2
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php(122):
IlluminateFilesystemFilesystem->put(‘/var/www/html/c…’, ‘s…’)n#3
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(51):
IlluminateViewCompilersBladeCompiler->compile(‘/var/www/html/c…’)n#4
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Vi in
/var/www/html/checkers/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
on line 122

Edit: I’ve sudo chmod -R 777 /var/ (temporarily) and I still get these permission errors.

3

Answers


  1. Chosen as BEST ANSWER

    Thank you for the help. It turns out I was setting the permissions successfully but they were being overridden by Centos.

    sudo setenforce 0
    

    The above worked for me.


  2. Assign the owner to all directories to your username and group to www-data. Assuming your apache group www-data and my-user is your username

    sudo chown -R my-user:www-data /path/to/your/laravel/root/directory
    

    Then change the file and directory permission like this

    sudo find /path/to/your/laravel/root/directory -type f -exec chmod 664 {} ;    
    sudo find /path/to/your/laravel/root/directory -type d -exec chmod 775 {} ;
    

    Details you can check here File permissions for Laravel 5 (and others)

    Login or Signup to reply.
  3. Have you changed permissions recursively?

    try:

    chmod -R 777 /var/www/html/checkers/storage
    chmod -R 777 /var/www/html/checkers/bootstrap
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search