【问题标题】:How to resolve the error "[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory"?如何解决错误“[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory”?
【发布时间】:2016-08-14 04:37:56
【问题描述】:

我在我的机器上使用 Ubuntu 14.04。我在文档根目录中安装了 composer 然后 laravel/var/www

我还授予 -R 777 权限以访问目录 /var/www

中的文件夹 laravel

然后我使用 cd /var/www/laravel 进入目录 laravel 并运行以下命令 php artisan 我看到了那里所有可用的命令。

然后我输入 php artisan key:generate 并得到错误

[ErrorException]  file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory

在这里我实际上卡住了,有人可以在这方面帮助我吗?

谢谢。

【问题讨论】:

  • 检查你的项目根目录下是否有 .env 文件。通常会有一个 .env.example 文件,您需要使用自己的设置将其更改为 .env 文件
  • 检查 /var/www/laravel 中是否存在 .env。它可能是隐藏的。如果不存在,将 .env.example 重命名为 .env。

标签: php laravel ubuntu-14.04 file-get-contents laravel-5.2


【解决方案1】:

可能有人正在寻找答案 所以这是我解决问题的答案 通常复制 .env.example 文件然后重命名它,不起作用 所以这是建议 不要那样做 做就是了 cp .env.example .env 在命令行中

然后更改数据库名称或密码等

【讨论】:

    【解决方案2】:

    您可以创建它并重新运行该命令。

    # cd /var/www/laravel 
    # cp .env.example .env       //renames .env.example to .env
    # php artisan key:generate 
    Application key set successfully.
    

    【讨论】:

      【解决方案3】:

      如果你像我一样确实有一个 .env 文件,你可能会发现它的权限太紧而无法让你当前的用户写入它(并且暗示 php artisan命令您当前的用户正在尝试运行)。我已将我所有的 Laravel 文件更改为由 www-data:www-data 拥有,并使我当前的用户成为 www-data 组的成员,因此被这个错误所困扰。

      不过,我很快意识到我的.env 文件具有以下权限:

      -rw-r--r--

      ...意味着拥有文件的用户可以读写,但组和世界只能读取。由于我当前的用户是 group www-data 的成员,所以它只能读,不能写。

      (你可以通过$ ls -la检查你的文件权限)

      如果你有同样的情况,你有两种选择;放松对该文件的文件权限(使用chmod)或使用sudo 运行您的php artisan 命令。我选择了后者,因为这对我来说是一个生产服务器,而且我喜欢严格的权限。

      【讨论】:

        【解决方案4】:

        .env 文件尚不存在,因为您首先需要创建和配置它。

        执行以下操作

        # Navigate to the correct folder
        $ cd /var/www/laravel
        
        # Copy the example file to make a .env file
        $ cp .env.example .env
        
        # Set the parameters
        $ vi .env
        

        【讨论】:

          【解决方案5】:

          可能你错过了 laravel 项目文件夹中的 .env 文件。所以将 .env.example 制作成 .env 文件。同时提供所需的数据库连接。

          .envfile 看起来像这样:(填写所需的数据库连接)

          APP_ENV=local
          APP_DEBUG=true
          APP_KEY=SomeRandomString
          APP_URL=http://localhost
          
          DB_HOST=127.0.0.1
          DB_PORT=3306
          DB_DATABASE=homestead
          DB_USERNAME=homestead
          DB_PASSWORD=secret
          
          CACHE_DRIVER=file
          SESSION_DRIVER=file
          QUEUE_DRIVER=sync
          
          REDIS_HOST=127.0.0.1
          REDIS_PASSWORD=null
          REDIS_PORT=6379
          
          MAIL_DRIVER=smtp
          MAIL_HOST=mailtrap.io
          MAIL_PORT=2525
          MAIL_USERNAME=null
          MAIL_PASSWORD=null
          MAIL_ENCRYPTION=null
          

          希望这会对你有所帮助。谢谢。

          【讨论】:

            【解决方案6】:

            在你的 laravel 根文件夹中将 .env.example 重命名为 .env

            【讨论】:

            • 对我来说这两个文件都存在,我删除了 .env.example 并更新了 .env 但得到了同样的错误。
            【解决方案7】:

            将 .env.example 重命名为 .env 并填写所有属性。 https://laravel.com/docs/5.0/configuration#environment-configuration

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2022-08-16
              • 2015-01-21
              • 2014-09-04
              • 1970-01-01
              • 2022-10-16
              • 2014-12-02
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多