Saya tidak terlalu tertarik untuk mengubah izin folder saya ke 777. Begini cara saya memperbaiki masalah ini.
Pertama, saya mengubah pengguna yang menjalankan server web pada mesin lokal saya (saya menjalankan nginx, tetapi prinsipnya berlaku di mana-mana):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Setelah itu, saya membuat index.phpfile lain di bawah public/folder untuk mencari tahu siapa yang menjalankan versi php-fpm saya dan ke mana saya akan mengubah itu:
<?php
phpinfo();
?>
Reload halaman, saya menemukan itu www-dataadalah pengguna (di bawah bagian lingkungan). Saya juga tahu saya menjalankan php 7.1. Saya melanjutkan untuk mengubah pengguna:
$> sudo vim /etc/php/7.0/fpm/pool.d/www.conf
#Look for www-data or the following variables: user, group, listen.user, listen.group.
Akhirnya, saya memberikan izin berikut ke folder:
sudo chmod -R 775 ./storage/
Sekarang, saya memastikan bahwa saya adalah pemilik folder dengan menggunakan yang sederhana:
ls -al
Jika Anda mengatur pengguna server dan php-fpm untuk diri sendiri dan folder dimiliki oleh root misalnya, maka Anda akan terus menghadapi masalah ini. Ini bisa terjadi jika Anda melakukan sudo laravel new <project>root. Dalam hal ini, pastikan Anda menggunakan chownperintah rekursif pada proyek Anda untuk mengubah user:grouppengaturan. Dalam kebanyakan kasus standar, www-dataadalah pengaturan utama untuk server dan php, dalam hal ini adalah masalah memastikan folder tidak di luar www-datajangkauan.
Proyek saya diatur dalam direktori rumah saya. Di Ubuntu 16.04 dan Laravel 5.5.