如何解决错误“[ErrorException] file_get_contents(/var/www/laravel/.env): 无法打开流:没有这样的文件或目录”?

How to resolve the error "[ErrorException] file_get_contents(/var/www/laravel/.env): failed to open stream: No such file or directory"?

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

我还授予 -R 777 文件夹 laravel 权限 [=46] =]

然后我使用 cd /var/www/laravellaravel 进入目录=57=] 下面的命令 php artisan 我在那里看到了所有可用的命令。

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

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

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

谢谢。

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

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

可能您错过了 laravel 项目中的 .env 文件 folder.So 将 .env.example 生成为 .env 文件。同时提供所需的数据库连接。

.env文件如下所示:(填写所需的数据库连接)

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

希望这会有所帮助 you.Thanks。

.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

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

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

-rw-r--r--

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

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

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

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

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

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

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