【问题标题】:Laravel 5.0 file_put_contents errorLaravel 5.0 file_put_contents 错误
【发布时间】:2016-04-15 23:34:24
【问题描述】:

刚刚将 laravel 项目移到托管上,它说:

production.ERROR:带有消息的异常“ErrorException” 'file_put_contents(/Users/max/sites/evocate.dev/storage/framework/sessions/7f7df88c52734c34a3f89286dc74d517d446c4fd): 无法打开流:没有这样的文件或目录'在 /home/f/fb7929gh/evocate2/vendor/compiled.php:6440

为什么它需要我的本地主机路径,我在哪里可以解决这个问题?

【问题讨论】:

  • 您是否将供应商文件夹上传到新主机或在新服务器上运行composer update/install
  • 你应该运行composer dump-autoload 来清理所有这些引用
  • @MagnusEriksson 我刚刚上传了 vandor 文件夹。不行吗?
  • 检查来自@DamienPirsy 的评论 - 您的 /vendor/compile.php 文件中似乎存储了绝对路径。

标签: php laravel laravel-5


【解决方案1】:

这似乎是权限问题。请检查director是否存在“storage/framework/sessions”,如果没有可以在framework目录下创建一个session文件夹。

或者请提供必要的存储文件夹写入权限以解决问题。

【讨论】:

    【解决方案2】:

    此问题是由Laravel Configuration Caching 引起的。您通常应该运行

    php 工匠配置:缓存

    命令作为生产部署例程的一部分。我建议你

    1. 删除配置缓存文件
    2. 刷新应用缓存
    3. 创建缓存文件以加快配置加载速度

    为此,请在命令行上运行以下 Artisan 命令

    1. php 工匠配置:清除
    2. php artisan 缓存:清除
    3. php 工匠配置:缓存

    如果您无法访问服务器上的命令行,您可以像这样programmatically execute commands

    Route::get('/clear-cache', function() {
        $exitCode = Artisan::call('config:clear');
        $exitCode = Artisan::call('cache:clear');
        $exitCode = Artisan::call('config:cache');
        return 'DONE'; //Return anything
    });
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      storage/framework中创建一个具有适当权限的目录sessions 您可以在 Ubuntu 中使用终端命令创建目录:

      sudo mkdir storage/framework/sessions
      

      或者你可以直接在project-root-folder/storage/framework/sessions

      里面创建一个目录

      并且还要检查**storage****bootstrap** 有完全的写权限。 777775

      【讨论】:

        【解决方案4】:

        您应该确保该目录存在并且您对该目录具有有效的文件权限

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-07-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-22
          • 2015-05-09
          • 2014-11-08
          相关资源
          最近更新 更多