Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5 show ErrorException file_put_内容无法打开流:没有这样的文件或目录_Php_Windows_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel 5 show ErrorException file_put_内容无法打开流:没有这样的文件或目录

Php Laravel 5 show ErrorException file_put_内容无法打开流:没有这样的文件或目录,php,windows,laravel,laravel-5,Php,Windows,Laravel,Laravel 5,我有一个关于Laravel 5的项目,我在办公室和家里都在用它。它工作正常,但最近在家里它停止了工作。Laravel给我看两个错误 file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php): failed to open stream: No such file or directory 及 我正在用谷歌搜索问题决策,并找到有关正确权利的信息。所有的建议都

我有一个关于Laravel 5的项目,我在办公室和家里都在用它。它工作正常,但最近在家里它停止了工作。Laravel给我看两个错误

file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory

我正在用谷歌搜索问题决策,并找到有关正确权利的信息。所有的建议都是关于Linux的,但我在办公室和家里都在Windows中工作

当我试图清除应用程序缓存和视图缓存时,artisan告诉我-…清除。但是缓存数据和视图存在于存储器中

我如何解决这个问题


提前谢谢

您的composer文件可能有问题。你可以试试:

  • composer安装根据 composer.lock(如果不存在,则创建composer.lock)
  • 编写器更新始终重新生成composer.lock并安装 基于composer.json的可用软件包的最新版本

  • composer dump autoload不会下载任何东西。它只是再生 需要包含在项目中的所有类的列表(autoload_classmap.php)。非常适合在项目中有新类时使用。理想情况下,您可以执行composer dump autoload-o,以便 更快地加载您的网页。它不是默认值的唯一原因是,它需要更长的时间生成(但只是稍微明显)


经过一些研究,我了解到-我有非常相似但不同的根项目位置及其在
/bootstrap/cache
中的缓存。缓存清除项目启动后

我遇到了类似的问题,因为第一台机器上的
/storage
文件夹的.gitignore,然后第二台机器上克隆了存储库,laravel被修改为写下会话缓存


因此,手动创建文件夹
/storage/sessions
可能是一个解决方案

解决此问题的最佳方法是,转到目录
laravel/bootstrap/cache
并删除
config.php
文件。或者您也可以将其重命名为
config.php.old
你的问题会解决的。
快乐编码:-)

这种问题通常发生在将一台服务器迁移到另一台服务器、将一个文件夹迁移到另一个文件夹时。当文件夹不同时,Laravel会保留缓存和配置(文件名),然后出现此问题

解决方案运行以下命令:

php artisan config:cache

此问题的原因是本地主机中的缓存文件。根据这一点,我尝试了以下几种方法来清除项目中的缓存,但每次都失败了

  • 试图通过更改web.php文件(使用artisan代码)来清除cahe命令
  • 试图通过连接SSH(通过PUTTY)清除缓存
  • 试图在创建新公共目录的子域中承载我的项目
所以,在上述每一步都失败后,我找到了解决这个问题的方法,它对我来说非常有效。我删除了host\u route/bootstrap/cache目录中的cache.php文件


我认为这个答案将有助于解决您的问题。

您通常应该在生产部署例程中运行
php artisan config:cache
命令。作为问题的解决方案,我建议您重新创建缓存文件,以便更快地加载配置

要执行此操作,请在命令行上运行以下Artisan命令

  • php artisan缓存:清除
  • php-artisan-config:cache
您可以通过将以下内容添加到管线中,以编程方式执行该命令:

Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('cache:clear');
    $exitCode = Artisan::call('config:cache');
    return 'DONE'; //Return anything
});
    Route::get('/clear-cache', function() {
        $run = Artisan::call('config:clear');
        $run = Artisan::call('cache:clear');
        $run = Artisan::call('config:cache');
        return 'FINISHED';  
    });
然后从浏览器中调用
清除缓存
路由


我希望这会有所帮助。

尝试使用这些对这些错误有用的命令

路径\项目\存储\框架\视图

路径\项目\存储\框架/会话

php artisan config:cache

在共享主机的情况下,当您没有命令行访问权限时,只需导航到laravel/bootstrap/cache文件夹并删除(或重命名)config.php,您就完成了

windows上的Apache+WSL 这是一个愚蠢的错误,与其他答案相比,这是一个不同的答案,但我会补充它,因为它发生在我身上

如果使用WSL(windows上的linux bash)管理laravel应用程序,同时使用windows apache运行服务器,则在WSL中运行任何缓存命令都将存储会话和其他文件夹的linux路径,而不是windows路径

解决方案 只需在powershell中而不是在WSL中运行缓存清除命令。

$php artisan优化

对我来说已经足够了。

实际上,当我将项目从服务器移动到本地时,我遇到了这个问题

存储/框架

需要四个基本文件夹:缓存、会话、测试和视图

在我的情况下,会话丢失可能在gitignore中

所以我手动创建了会话文件夹并刷新了浏览器,它开始工作了


因此,如果我们删除这个问题,任何丢失的文件夹都可以解决。

在我的情况下,这不是任何可以用php artisan命令修复的问题。问题是/storage文件夹的文件夹权限。错误并没有说明这一点

解决此问题的最佳方法是,转到目录
laravel/bootstrap/cache
并从缓存中删除所有文件

要执行此操作,请在命令行上运行以下Artisan命令
1。php artisan配置:清除

2。php artisan缓存:清除

3。php artisan配置:缓存

在面板或服务器中,可以通过向路由添加以下内容来执行命令:

Route::get('/clear-cache', function() {
    $exitCode = Artisan::call('cache:clear');
    $exitCode = Artisan::call('config:cache');
    return 'DONE'; //Return anything
});
    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
路由。

如果您在docker内部运行laravel,请访问其文件系统

$ docker exec -it name-of-laravel-container /bin/bash
下一步导航
composer install --optimize-autoloader --no-dev
php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan config:cache
php artisan route:cache