Я не надто захоплювався тим, як змінити дозволи на папки на 777. Ось як я вирішив виправити цю проблему.
По-перше, я змінив користувача, який працює на веб-сервері на моїй локальній машині (я запускаю nginx, але принципи застосовуються скрізь):
$> sudo vim /etc/nginx/nginx.conf
user <my_user> #inside nginx.conf
service nginx reload
Згодом я створив ще один index.php
файл під public/
папкою, щоб дізнатися, хто працює у моїй версії php-fpm, і де я б міг змінити це:
<?php
phpinfo();
?>
Перезавантаживши сторінку, я виявив, що www-data
це користувач (у розділі навколишнього середовища). Я також дізнався, що я працюю на php 7.1. Я перейшов до зміни користувача:
$> 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.
Нарешті, я дав наступні дозволи папкам:
sudo chmod -R 775 ./storage/
Тепер я переконався, що я був власником папок за допомогою простого:
ls -al
Якщо ви встановите користувачів сервера та php-fpm для себе, а папки, наприклад, належать root, тоді ви продовжуєте стикатися з цією проблемою. Це може статися, якщо ви зробили sudo laravel new <project>
як root. У цьому випадку переконайтеся, що ви використовуєте рекурсивну chown
команду для свого проекту для зміни user:group
налаштувань. У більшості випадків за замовчуванням www-data
є основним параметром для сервера та php; у цьому випадку справа у тому, щоб папка не вийшлаwww-data
недосяжна.
Мій проект налаштування в моєму домашньому каталозі. На Ubuntu 16.04 та Laravel 5.5.