Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel: file_put_contents() permission denied — correct storage/framework/cache permissions?

I'm having struggles with editing the Laravel cache, which is located in storage/framework/cache. I've got a job running that saves to a certain cache, but every time the job runs, this error occurs:

ERROR: file_put_contents(/var/www/html/---/storage/framework/cache/data/3c/c7/3cc7fd54b5a3cb08ceb0754f58371cec1196159a): failed to open stream: Permission denied

Details

  • When I save to the same cache (e.g. with the same key, there is no error)
  • I am running on nginx
  • Already have I run this command sudo chown -R www-data:www-data storage in the folder the Laravel application is located, as well as sudo chmod -R 775 /home/<user>/<laravel folder>/storage
  • Performing ls -lh /storage/framework/cache returns the following: drwsrwsr-x 55 www-data www-data 4.0K Jan 18 20:56 data.
  • Now I'm just wondering what the full, correct, Laravel permission set is and how to restore that set-up.

Any help is appreciated! Thank you in advance.

like image 604
Thierry Maasdam Avatar asked Jan 19 '19 08:01

Thierry Maasdam


2 Answers

I cleared the cache completely using sudo php artisan cache:clear. Afterwards, the problem never occurred.

Opposed to Ismoil's answer: never make the Laravel storage folder 777. It poses a security risk.

like image 184
Thierry Maasdam Avatar answered Oct 05 '22 23:10

Thierry Maasdam


1) If you take a look at your cache.php config file you'll see that for the file driver the storage/framework/cache/data folder is set for writing:

'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache/data'),
],

That means that the permissions for that folder must be properly set so that the web server user can successfully write to that folder.

2) or you can just running this command for me it solved my problem

php artisan cache:clear 
chmod -R 775 storage/
composer dump-autoload
like image 25
Ismoil Shifoev Avatar answered Oct 06 '22 01:10

Ismoil Shifoev