Klasör izinlerimi 777 olarak değiştirmeye çok hevesli değildim. Bu sorunu düzeltmeye nasıl başladım.
İlk olarak, yerel makinemde web sunucusunu çalıştıran kullanıcıyı değiştirdim (nginx çalıştırıyorum, ancak ilkeler her yerde geçerlidir):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Daha sonra, php-fpm sürümümü kimin çalıştırdığını ve nerede değiştireceğimi öğrenmek index.phpiçin public/klasörün altında başka bir dosya oluşturdum :
<?php
phpinfo();
?>
Sayfayı yeniden yüklediğimde, www-datakullanıcının (ortam bölümünün altında) olduğunu öğrendim . Ben de php 7.1 çalıştırdığını öğrendim. Kullanıcıyı değiştirmeye devam ettim:
$> 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.
Son olarak, klasörlere aşağıdaki izinleri verdim:
sudo chmod -R 775 ./storage/
Şimdi, basit bir kullanarak klasörlerin sahibi olduğumu emin oldum:
ls -al
Sunucuyu ve php-fpm kullanıcılarını kendinize ayarlarsanız ve klasörler örneğin root'a sahipse, bu sorunla karşılaşmaya devam edersiniz. sudo laravel new <project>Kök olarak yapıldıysa bu olabilir . Bu durumda, ayarları chowndeğiştirmek için projenizde özyinelemeli bir komut kullandığınızdan emin olun user:group. Çoğu varsayılan durumda, www-datasunucu ve php için ana ayardır, bu durumda klasörün www-dataulaşamayacağından emin olmak önemlidir .
Projem ana dizinimde ayarlandı. Ubuntu 16.04 ve Laravel 5.5'te.