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

时间:2016-04-21 06:51:43

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

我在我的机器上使用 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

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

感谢。

6 个答案:

答案 0 :(得分:37)

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

答案 1 :(得分: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

答案 2 :(得分:3)

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

答案 3 :(得分:1)

可能您错过了laravel项目文件夹中的.env文件。因此,.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

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

答案 4 :(得分:1)

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

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

-rw-r--r--

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

(您可以通过$ ls -la

检查您的文件权限

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

答案 5 :(得分:0)

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

# cd /var/www/laravel
# touch .env 
# php artisan key:generate
Application key set successfully.