如何解决错误“[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such fil

Posted

技术标签:

【中文标题】如何解决错误“[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory”?【英文标题】:How to resolve the error "[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。 【参考方案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

【讨论】:

以上是关于如何解决错误“[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such fil的主要内容,如果未能解决你的问题,请参考以下文章

"SQL SERVER,错误:207" 如何解决

如何解决“错误:输入中的语法错误(1)。”

如何解决此分段错误:以下代码的 11 错误?

如何解决子重复错误?

Ftp 错误代码 550,如何解决

这是啥覆盖错误,我该如何解决? [复制]