Laravel показывает "Не удалось очистить кеш. Убедитесь, что у вас есть соответствующие разрешения"

Laravel показывал мне «Доступ запрещен для пользователя 'homestead' @ 'localhost' (с паролем: YES)». Одним из решений для этого была очистка кеша и сохраненный кеш конфигурации, и все это с помощью этих трех команд:

php artisan cache:clear
php artisan config:clear
php artisan config:cache

После php artisan cache:clear терминал говорит:

Failed to clear cache. Make sure you have the appropriate permissions. (с красным фоном)

Выполнение второго и третьего кода (php artisan config:clear и php artisan config:cache) отлично работает! Но все равно выдает ошибку при вводе первой строки. Кто-нибудь может объяснить почему?

У меня это сработало, когда я изменил последовательность (маршрут: очистить, конфигурацию: очистить, затем кеш: очистить).

Ihab Shoully 10.05.2020 04:13

Используйте sudo, если ни одно из предложенных решений вам не подходит. ;)

Shafi 24.09.2020 05:39
sudo -u www-data php artisan cache:clear
Не быть рабом на Руси 05.05.2021 15:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
98
3
104 642
19
Перейти к ответу Данный вопрос помечен как решенный

Ответы 19

возможно, вам нужно chmod 777 -R хранилище. и я думаю, что он также может использовать www-data: www-data

Я действительно пытаюсь НЕ использовать 777 в своих проектах. Единственный раз, когда мне это нужно, - это когда я обращаюсь к общей папке через браузер, но поскольку я могу использовать свой проект, создав службу с localhost: 8000, я избегаю 777. И chown www-data не работает

E.Akio 08.09.2018 03:45

не во всем твоем проекте. просто папка для хранения. и выбрал его www-data: www-data, а не user: www-data. просто попробуйте

Martin Adiputra 08.09.2018 03:47

Даже в папке для хранения есть много сообщений, в которых говорится не использовать 777 даже в одной папке, и у них тоже есть веская причина для мер безопасности ... И да, пользователь: www-data - это то, что я пробовал: /

E.Akio 08.09.2018 03:52

а может можно 775 разрешение.

Martin Adiputra 08.09.2018 03:58

sudo chown -R www-data: www-data / путь / к / вашему / проекту / поставщику sudo chown -R www-data: www-data / путь / к / вашему / проекту / хранилищу

Martin Adiputra 08.09.2018 03:59

775 не работал, ни в хранилище, ни во всей папке проекта ... теперь я пробовал как www-data: www-data, так и user: www-data, но ничего не изменилось, даже используя папка проекта (что изменит права доступа ко всем папкам внутри )

E.Akio 08.09.2018 04:14

Мартин, если вы редактируете свой ответ по мере его развития, обычно предпочтительнее отслеживать изменения в комментариях. Это упрощает просмотр текущего ответа и снижает вероятность его закрытия при прохождении через очереди на просмотр.

Jason Aller 08.09.2018 04:27

Вам может потребоваться очистить автозагрузчик с помощью composer dump-autoload

Если это не сработает, вы можете вручную удалить следующие не отслеживаемые (обычно) файлы, чтобы очистить автозагрузчик и кеш, если они застряли:

/bootstrap/cache/packages.php

/bootstrap/cache/services.php

Я видел этот ответ (об удалении файлов пакетов и служб из папки начальной загрузки / кеша) по другой теме, но почему это должно быть разрешение? Плюс не было никаких изменений после их удаления или использования dump-autoload.

E.Akio 08.09.2018 18:11

Если автозагрузчик забит кешированными настройками конфигурации, которые вам не нужны, например, соединениями с БД, вы можете попасть в место, где они не могут очиститься.

jeremykenedy 08.09.2018 18:22
Ответ принят как подходящий

Если каталог data не существует в (storage/framework/cache/data), у вас будет эта ошибка.

Этот каталог data не существует по умолчанию при новой / новой установке.

Создание каталога data вручную на (storage/framework/cache) должно решить эту проблему.

Прямо на месте! Я закончил с твоим ответом

E.Akio 14.09.2018 16:21

У меня storage/framework/cache/data, и я до сих пор получаю это сообщение.

Jay Bienvenu 07.08.2019 16:48

@JayBienvenu Он в любом случае должен работать без каталога данных - только storage/framework/cache, этот путь должен уже существовать (по крайней мере, для более новых версий Laravel 5.7+) - проверьте, не переопределяете ли вы путь к хранилищу по умолчанию, а если нет, проверьте, достаточно ли в вашей папке кеша разрешения для веб-сервера / php; предполагая, что кеш хранилища файлов по умолчанию - проблема, вероятно, происходит в vendor/laravel/framework/src/Illuminate/Cache/FileStore.php - метод flush() - вы можете начать отладку оттуда :)

jave.web 23.09.2019 19:15

@JayBienvenu, попробуй этот stackoverflow.com/a/54442312/2140408

Sid 03.08.2021 11:51

Просто добавьте папку с именем data в storage/framework/cache/ и попробуйте:

php artisan cache:clear

добавлена ​​папка с данными в / application / storage / framework / cache, и ее работа. Спасибо!

Avinash Raut 11.01.2021 07:50

Попробуйте удалить эти кешированные файлы в папке начальной загрузки:

/bootstrap/cache/packages.php
/bootstrap/cache/services.php
/bootstrap/cache/config.php

Затем запустите php artisan cache:clear

вы экономите мое время. :)

Md. Abu Taleb 05.07.2019 10:48

@SumonMahmud рад это слышать!

Sid 10.07.2019 14:13

После того, как я получил много ответов благодаря вам, я смог это исправить. Спасибо

Nipun Tharuksha 15.09.2019 18:05

@NipunTharuksha никаких проблем!

Sid 15.09.2019 19:35

Вы, сэр, заслуживаете MVP. Переместил мой проект в другой каталог, другое имя и, кстати, другая группа + другое имя репо на gitlab закончилось этой проблемой. Вы это решили! Благодарность !

Florian Doyen 13.02.2020 14:38

Круто ... Работает, хороший вариант, когда вы работаете на cpanel и у вас нет прав на терминал.

dipenparmar12 13.03.2020 16:22

Я пробовал все, моя ошибка была In Find.php line 287: Authentication failed. config: cache, cache: clear config: clear, мой кеш был пуст, ничего не работает. Вы меня спасаете, спасибо!

Rodrigo 10.06.2021 16:49

приятно это слышать, ребята!

Sid 11.06.2021 08:08

Большой! РАБОТАЕТ РЕШЕНИЕ

Vidurajith Darshana 28.06.2021 09:31

Я запустил свой проект в контейнере докеров, а затем попытался получить к нему доступ через laragon, у меня была аналогичная проблема, это было из-за скомпилированных конфигураций в /bootstrap/cache/config.php.

Я исправил посадку, запустив php artisan config:clear, при этом файл /bootstrap/cache/config.php удаляется автоматически.

Вызов

php artisan config:cache 

до

php artisan cache:clear

исправил проблему.

О, вот и все. Я переместил каталог проекта и запущенный кеш: clear пытался очистить кеш по старому пути, к которому у него не было доступа (на самом деле папка не существовала). Спасибо!

Orkhan Alikhanov 17.08.2020 19:56

Это правильный ответ. Вы не можете очистить то, чего у вас нет.

Chuck Le Butt 14.01.2021 16:57

Все еще не работает у меня

ii iml0sto1 12.07.2021 16:07

У меня была такая же проблема, но я заметил, что если вы запустите php artisan config: очистить, также по умолчанию запускает кеш: очистить сразу после него, поэтому при повторном запуске в нем нет кеша и возникает эта ошибка. вам нужно только запустить php artisan config: clear. Я не уверен, почему cache: clear не работает, когда он запускается отдельно, но запуск config: clear - хорошая альтернатива.

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

laraclear='php artisan config:cache && php artisan config:clear && php artisan view:clear && php artisan route:clear && php artisan telescope:clear && php artisan debugbar:clear'

Удалите все ненужные команды, которые вы в нем не используете.

Разве это не решит проблему?

$php artisan optimize:clear
Compiled views cleared!
Application cache cleared!
Route cache cleared!
Configuration cache cleared!
Compiled services and packages files removed!

Первая попытка:

Проверьте, есть ли папка «data» внутри «storage / framework / cache /». Если нет, то создайте его вручную. (создайте новую папку с названием «данные»)

Вариант 2:

Если внутри «storage / framework / cache /» есть папка «data». Удалите ВСЕ существующие папки внутри.

Затем, наконец, запустите это:

php artisan cache:clear

Это должно решить эту проблему: «Не удалось очистить кеш. Убедитесь, что у вас есть соответствующие разрешения».

Спасибо! это работает для меня :)

Kim Tormes 17.05.2021 09:25

рад слышать @KimTormes

Raymond 22.05.2021 19:59

Вы должны обновить разрешение, используя следующую команду - /

sudo chown -R www-data:www-data ./storage

Это решит вашу проблему, указанную ниже.

Была такая же проблема на моей бродячей / хуторской виртуальной машине. Все остальное в этой теме не помогло.

Решение было vagrant reload --provision

Если это не работает для вас, просто запустите команду php artisan cache: clear с помощью sudo. например sudo php artisan cache:clear Спасибо позже ~!

получил ту же ошибку. попробуйте дать разрешение chmod 777 в соответствующей папке

Об этом уже говорили, по идее 777 разрешение не давать

E.Akio 06.03.2021 06:03

У меня сработало удаление и добавление папки ./storage/framework/cache/data.

Да, у меня это тоже сработало.

touson 14.07.2021 14:54

Предоставление разрешения 775 для каталога хранилища решило эту проблему для меня.

sudo chmod -R 775 storage

Я предполагаю, что у вас проблема с разрешением / правом собственности. Либо настройте разрешения правильно, либо рекурсивно удалите папку кеша вручную и создайте заново:

sudo rm -Rf storage/framework/cache
mkdir storage/framework/cache

Вызов следующих 4 команд должен исправить большинство проблем с разрешениями в laravel.

sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache

В Laravel 8 я решил свою проблему, сначала запустив composer dump-autoload, а затем использовал php artisan config:cache

Работает как шарм!

Ajith Gopi 30.07.2021 19:35

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