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
)效果很好!但是在输入第一行时它仍然给我错误。谁能解释为什么?
sudo -u www-data php artisan cache:clear
如果 (storage/framework/cache/data
) 下不存在 data
目录,则会出现此错误。
在全新/全新安装中,默认情况下此 data
目录不存在。
在 (storage/framework/cache
) 处手动创建 data
目录应该可以解决此问题。
尝试删除引导文件夹下的这些缓存文件:
/bootstrap/cache/packages.php
/bootstrap/cache/services.php
/bootstrap/cache/config.php
然后运行 php artisan cache:clear
打电话
php artisan config:cache
前
php artisan cache:clear
解决了这个问题。
只需在 storage/framework/cache/
中添加名为 data
的文件夹并尝试:
php artisan cache:clear
https://i.stack.imgur.com/hMopa.png
第一次尝试:
检查“storage/framework/cache/”中是否有“data”文件夹。如果没有,则手动创建它。 (创建一个名为“data”的新文件夹)
选项 2:
如果“storage/framework/cache/”中有“data”文件夹。删除那里的所有现有文件夹。
然后最后,运行这个:
php artisan cache:clear
这应该可以解决此问题:“无法清除缓存。请确保您具有适当的权限。”
调用以下 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
基本上,chown -R $USER:www-data
的作用是将当前用户 $USER
设置为所有者,将 www-data
设置为组,chmod -R 775
将 7 分配给用户,7 分配给组,5 分配给其他用户。
#PS:您需要从 laravel 项目目录运行上述命令,否则,您需要提供完整路径,如 /var/www/project_name/storage
www-data
的另一种方法,例如:sudo usermod -a -G examplegroup exampleusername
,然后您只需向 www-data
授予权限。
在 Laravel 8 中,我通过先运行 composer dump-autoload
然后使用 php artisan config:cache
解决了我的问题
ls- l
以查看所有权时,如果一切正常.
删除并重新添加 ./storage/framework/cache/data
文件夹对我有用。
您应该使用以下步骤更新权限:
使用命令“whoami”检查用户,然后让输出为“ironman”如果缓存目录中存在“data”文件夹,则运行以下命令
sudo chown -R ironman:ironman storage/framework/cache/data/
https://i.stack.imgur.com/A2wZ7.png
我在 docker 容器中运行我的项目,然后尝试通过 laragon 访问它,我遇到了类似的问题,这是由于 /bootstrap/cache/config.php
中的编译配置造成的。
我通过运行 php artisan config:clear
修复了 fit,这会自动删除 /bootstrap/cache/config.php
文件。
我有同样的问题,但注意到如果你运行 php artisan config:clear 它默认也会运行 cache:clear ,所以当你再次运行它时,它没有缓存并给出错误。你只需要运行 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'
删除您不使用的任何不需要的命令。
(对于 MAC 用户)
有时,这意味着当前用户对 storage/framework/cache/data/ 文件夹没有足够的权限。跑
sudo chmod -R ug+rwx 存储/框架/缓存/数据/
然后
php工匠缓存:清除
希望有时它对你有用。
您可能需要使用 composer dump-autoload
清除自动加载器
如果这不起作用,您可以手动删除以下未跟踪的(通常)文件以清除自动加载器和缓存(如果它们被卡住):
/bootstrap/cache/packages.php
/bootstrap/cache/services.php
就我而言,问题是我在 .env 中有“CACHE_DRIVER=memcached”,但没有安装 memcached。切换到文件驱动程序或安装 memcached 为我解决了这个问题。
删除以下所有子文件夹:
storage/framework/cache/data/
对于 Windows 上的 Laravel Homestead:
在您的 .env
文件中,将您的 CACHE_DRIVER
从 file
更改为 memcached
。
运行 php artisan cache:clear
。
这不能解决吗?
$php artisan optimize:clear
Compiled views cleared!
Application cache cleared!
Route cache cleared!
Configuration cache cleared!
Compiled services and packages files removed!
在我的 vagrant/homestead 虚拟机上遇到了同样的问题。该线程中的所有其他内容均无济于事。
解决方案是 vagrant reload --provision
授予存储目录 775 权限为我解决了这个问题。
sudo chmod -R 775 storage
我正在 Homestead 运行我的项目。
我的环境:
Ubuntu1~20.04+ Laravel 6.20.26
我的输出
https://i.stack.imgur.com/mYMXN.png
显示真实的致命信息
编辑 src/Illuminate/Filesystem/Filesystem.php 598:14
原始代码:
if (! $preserve) {
@rmdir($directory);
}
调试代码
if (! $preserve) {
rmdir($directory);
}
然后重新执行 php artisan cache:clear
输出改变了:
https://i.stack.imgur.com/gVwkM.png
然后,我只解决 Text file busy
得到同样的错误。尝试在相关文件夹中授予 chmod 777 权限
我的猜测是您有权限/所有权问题。正确设置权限或手动递归删除缓存文件夹并重新创建它:
sudo rm -Rf storage/framework/cache
mkdir storage/framework/cache
也许您需要 chmod 777 -R 存储文件夹。我认为它也可以 chown www-data:www-data
如果这些都不适合您,只需使用 sudo 运行您的 php artisan cache:clear 命令。例如sudo php artisan cache:clear
稍后谢谢我~!
storage/framework/cache/data
,但仍然收到此消息。storage/framework/cache
这个路径必须已经存在(至少对于较新的 Laravel 版本 5.7+) - 检查您是否没有覆盖默认存储路径,如果没有,请检查您的缓存文件夹对 webserver/php 有足够的权限;假设默认 FileStore 缓存 - 问题可能发生在vendor/laravel/framework/src/Illuminate/Cache/FileStore.php
- 方法flush()
- 您可以从那里开始调试 :)