如何解决错误“[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
文件。同时提供所需的数据库连接。
.env
file 看起来像这样:(填写所需的数据库连接)
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的主要内容,如果未能解决你的问题,请参考以下文章