Laravel в aws - не удалось открыть поток: отказано в разрешении

Я столкнулся с этой проблемой на сервере AWS,

Не удалось открыть поток или файл "/var/www/html/storage/logs/laravel.log": не удалось открыть поток: отказано в доступе

И даю разрешение "777", сейчас

sudo chmod -R 755 storage/

sudo chmod -R 777 storage/

ErrorException file_put_contents(/var/www/html/storage/framework/sessions/UMNbxoQBZjaUuZK7j4IHfRp3fWJF8pd688gnWX4o): не удалось открыть поток: в доступе отказано

Я получаю эту ошибку. Помогите мне исправить.

3 ответа

Как вы используете CentOS 7.8

пытаться sudo chcon -t httpd_sys_rw_content_t storage дать полное разрешение storage

Вам также необходимо предоставить разрешение на хранилище и папку начальной загрузки.

sudo chmod -R 777 storage/
sudo chmod -R 777 bootstrap/

Как только вы дадите разрешение, обязательно очистите кеши.

php artisan config:cache
php artisan route:clear
php artisan view:clear

Или у вас было бы config.php файл внутри bootstrap >> cache >> config.php удалите это.

Каталог Bootstrap

В bootstrap каталог содержит app.phpфайл, который загружает фреймворк. В этом каталоге также находится каталог кеша, который содержит файлы, созданные платформой для оптимизации производительности, такие как файлы кеша маршрутов и служб.

Каталог хранилища

В storageКаталог содержит ваши скомпилированные шаблоны Blade, сеансы на основе файлов, кеши файлов и другие файлы, созданные фреймворком. Этот каталог выделен в приложение, рамку и журналы каталоги. Каталог приложения может использоваться для хранения любых файлов, созданных вашим приложением. Каталог framework используется для хранения файлов и кешей, созданных платформой. Наконец, каталог журналов содержит файлы журналов вашего приложения.

Этот вопрос действительно актуален, когда речь заходит о Laravel. Лучшее предложение, которое я могу дать, — это изменить разрешения на чтение/запись/исполнение вашей папки хранения, например:

      sudo chmod -Rf 755 storage

-f - запустить команду для подфайлов и подкаталогов на всем протяжении

И убедитесь, что apache и пользователь имеют доступ/право собственности на папку хранения, например:

      sudo chown -Rf username:apache storage

Важно: всегда избегайте использования 777, так как он дает разрешение любому получить доступ к вашим файлам и папкам за пределами вашей группы пользователей.

Села!

Другие вопросы по тегам