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.php
için public/
klasörün altında başka bir dosya oluşturdum :
<?php
phpinfo();
?>
Sayfayı yeniden yüklediğimde, www-data
kullanı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ı chown
değiştirmek için projenizde özyinelemeli bir komut kullandığınızdan emin olun user:group
. Çoğu varsayılan durumda, www-data
sunucu ve php için ana ayardır, bu durumda klasörün www-data
ulaşamayacağından emin olmak önemlidir .
Projem ana dizinimde ayarlandı. Ubuntu 16.04 ve Laravel 5.5'te.