我在Laravel 5上有一个项目,我也在办公室和家里工作。它工作正常,但最近在家里它停止工作。 Laravel向我展示了两个ErrorException
file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory
和
file_put_contents(G:\project\storage\framework/sessions/aIXycR4LIAUBVIqZu0T590paOMIpV8vfZGIroEp0):
failed to open stream: No such file or directory
我正在搜索Google的问题决定,并找到有关正确权利的信息。所有建议都是关于Linux的,但我也在办公室和家里的Windows中工作。
当我尝试清除应用程序缓存和查看缓存时,工匠与我交谈 - ...已清除。但缓存数据和视图存在于存储中。
如何解决此问题?
提前致谢!
答案 0 :(得分:55)
解决此问题的最佳方法是,转到目录" laravel / bootstrap / cache"并删除config.php文件。或者您可以像config.php.old一样重命名它 而你的问题将得到解决。 快乐的编码: - )
答案 1 :(得分:30)
通常应在生产部署例程中运行php artisan config:cache
命令。我建议你
为此,请在命令行上运行以下Artisan命令
php artisan config:clear
php artisan cache:clear
php artisan config:cache
如果您无权访问服务器上的命令行,则可以通过在路由中添加以下内容来以编程方式执行命令:
Route::get('/clear-cache', function() {
$exitCode = Artisan::call('config:clear');
$exitCode = Artisan::call('cache:clear');
$exitCode = Artisan::call('config:cache');
return 'DONE'; //Return anything
});
然后从浏览器调用clear-cache
路由。
我希望这会有所帮助。
答案 2 :(得分:27)
经过一些研究后我明白了 - 我有非常相似但不同的根项目位置,并在/bootstrap/cache
缓存。缓存清除项目启动后。
答案 3 :(得分:4)
此类问题通常在将一个服务器迁移到另一个服务器,一个文件夹迁移到另一个服当文件夹不同时,Laravel会保留缓存和配置(文件名),然后会出现此问题。
解决方案运行以下命令:
php artisan config:cache
https://laravel.com/docs/5.6/configuration#configuration-caching
答案 4 :(得分:3)
我删除了文件/public_html/bootstrap/cache/config.php
然后我运行 php artisan config:cache
这对我有用
答案 5 :(得分:2)
将/bootstrap/cache/config.php的名称更改为config.php.old对我不起作用 都无法通过artisan命令清除缓存
出于某种奇怪的原因,我无法更改目录所有者的权限,因此我的解决方案是以管理员身份运行IDE(Visual Studio Code),一切正常。
我的项目在另一个磁盘的F:/路径中。
答案 6 :(得分:2)
在共享主机的情况下,当您没有命令行访问权限时,只需导航到laravel / bootstrap / cache文件夹并删除(或重命名)config.php,一切就完成了!
答案 7 :(得分:2)
当您将网站从本地转移到实时服务器时会发生这种情况,反之亦然。
只需转到 bootstrap/cache
并删除 config.php。
就是这样!
答案 8 :(得分:1)
尝试使用对这些错误有用的命令
路径\项目\存储\框架\视图...
php artisan view:clear
路径\项目\存储\框架/会话...
php artisan config:cache
答案 9 :(得分:1)
如果没有任何效果,请在生产环境中尝试以下操作
1-
composer install --optimize-autoloader --no-dev
2-
php artisan cache:clear
3-
php artisan config:clear
4-
php artisan view:clear
5-
php artisan config:cache
6-
php artisan route:cache
对我有用
答案 10 :(得分:1)
在我的情况下,php artisan命令无法修复任何问题。问题是/ storage文件夹的文件夹权限。该错误并不清楚。
答案 11 :(得分:1)
如果您在docker内部运行laravel,则访问其文件系统
$ docker exec -it name-of-laravel-container /bin/bash
接下来,导航至您的laravel项目根目录。确保您具有存储/框架文件夹:
而且它们应该可读可写。
答案 12 :(得分:1)
我通过创建storage\framework\sessions
文件夹解决了这个问题。
答案 13 :(得分:0)
您的作曲家文件可能存在问题。你可以尝试:
作曲家更新始终重新生成composer.lock并安装 基于composer.json
composer dump-autoload 不会下载任何内容。它只是再生 需要包含在项目中的所有类的列表(autoload_classmap.php)。非常适合在项目中使用新课程。理想情况下,您执行composer dump-autoload -o 更快地加载您的网页。它不是默认值的唯一原因是因为生成需要更长的时间(但只是略微明显)
答案 14 :(得分:0)
这为我带来了魔力。 chmod -Rf 0777存储
答案 15 :(得分:0)
我用过Laravel 8,这是我的解决方法
转到:
存储/框架/缓存/数据
设置的权限目录数据为777
对我有用
答案 16 :(得分:0)
在我的例子中,我设置了 APP_DEBUG=false
,因为它是一个生产服务器,我决定将它设置回 true
然后它显示 Missing BC Math or GMP extension
这就是我解决自己问题的方法,设置 APP_DEBUG=true
可能并不适合所有人。
答案 17 :(得分:0)
清除storage/framework/cache
的内容对我有用。什么都没用...
答案 18 :(得分:0)
对我有用的解决方案是仅将应用程序用作管理员 如果您是
mac
或linux
上使用sudo php artisan serve
CMD
的身份打开adminstrator
,然后转到项目目录并运行php artisan serve
答案 19 :(得分:0)
解决此问题的最佳方法是转到目录laravel/bootstrap/cache
,然后从缓存中删除所有文件。
为此,请在命令行上运行以下Artisan命令
1. php artisan config:clear
2. php artisan cache:clear
3. php artisan config:cache
在面板或服务器中,可以通过将以下内容添加到路由中来执行命令:
Route::get('/clear-cache', function() {
$run = Artisan::call('config:clear');
$run = Artisan::call('cache:clear');
$run = Artisan::call('config:cache');
return 'FINISHED';
});
然后从浏览器中调用www.yourdomain.com/clear-cache
路由。
答案 20 :(得分:0)
实际上,当我将项目从服务器移到本地时,我遇到了这个问题。
在
存储/框架
四个基本文件夹是必需的缓存,会话,测试,视图
就我而言,缺少会话可能是在gitignore中。
所以我手动创建了会话文件夹并刷新了浏览器,并且它正常工作。
因此,如果我们删除此问题,则所有丢失的文件夹都可以解决。
答案 21 :(得分:0)
这是一个愚蠢的错误,与其他错误相比答案是不同的,但我会添加它,因为它发生在我身上。
如果您使用WSL(Windows上的Linux bash)管理laravel应用程序,同时使用 windows apache来运行服务器,则在wsl中运行任何缓存命令都会存储 linux路径,而不是会话和其他文件夹的 windows路径。
只需在 powershell中而不是在WSL中运行缓存清除命令。
$ php artisan optimize
对我来说足够了。
答案 22 :(得分:0)
此问题的原因是本地主机中的缓存文件。据此,我尝试了以下几种方法来清除项目中的缓存,但是每次失败都可以。
因此,在上述每个步骤都失败之后,我已经找到了解决该问题的方法,并且对我来说非常有效。我删除了 host_route / bootstrap / cache 目录中的 cache.php 文件。
我认为这个答案将帮助您解决问题。
答案 23 :(得分:-3)
我有类似的问题,因为.gitignore用于第一台机器上的/storage
文件夹,然后克隆了第二台机器上的存储库,laravel是修订版以记下会话缓存
因此,手动创建文件夹/storage/sessions
可能是一种解决方案..