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

问题描述 投票:17回答:6

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

我还给目录/ var / www中存在的文件夹laravel -R 777权限

然后我使用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

enter image description here我实际上遇到了困难,有人可以帮我这方面吗?

谢谢。

php laravel ubuntu-14.04 file-get-contents laravel-5.2
6个回答
37
投票

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


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

3
投票

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


1
投票

可能你错过了你的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

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


1
投票

如果像我一样,你确实有一个.env文件,你可能会发现它的权限太紧,不允许你当前的用户写入它(并暗示你当前用户试图运行的php artisan命令)。我已将所有我的Laravel文件更改为www-data:www-data所有并使我当前的用户成为www-data组的成员,因此对此错误感到有点困惑。

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

-rw-r--r--

...意味着拥有该文件的用户获得了读写权限,但该组和世界只能读取。由于我当前的用户是www-data组的成员,因此它只能读取而不能写入。

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

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


0
投票

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

# cd /var/www/laravel 
# cp .env.example .env       //renames .env.example to .env
# php artisan key:generate 
Application key set successfully.
© www.soinside.com 2019 - 2024. All rights reserved.