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.php
file 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-data
adalah 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 chown
perintah rekursif pada proyek Anda untuk mengubah user:group
pengaturan. Dalam kebanyakan kasus standar, www-data
adalah pengaturan utama untuk server dan php, dalam hal ini adalah masalah memastikan folder tidak di luar www-data
jangkauan.
Proyek saya diatur dalam direktori rumah saya. Di Ubuntu 16.04 dan Laravel 5.5.