Search code examples
phplaravelnginxlaravel-5file-permissions

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.


Solution

  • 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.