1

注意:这个问题不是这些问题的重复:

  1. Laravel 5.2 不读取 env 文件
  2. Laravel 5.2 .env 有时无法及时加载

我收到此错误:

production.ERROR: exception 'RuntimeException' with message 'No supported encrypter found. The cipher and / or key length are invalid.' in /home/coder/.local/share/Trash/files/myblog/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:45

当我尝试dd($config['key']);它返回'null'。甚至数据库环境变量也返回 null。所以这意味着 Laravel 没有从 .env 文件中读取。

  1. 是什么原因?
  2. 如何解决这个问题?

现在我已经通过在 Config/app.php 文件中手动指定键并在 Config/database.php 文件中设置数据库值来解决这个问题

我怀疑我的 .env 文件的权限/所有者错误。我正在使用Elementary OS进行开发

4

2 回答 2

6

为确保.env正在读取最新版本的文件,请确保运行php artisan config:clear.

您可能还想运行php artisan key:generate为您的应用程序生成密钥(如果您还没有这样做的话)。同时检查您的密码是否AES-256-CBC更好或更好config/app.php

如果这是本地开发环境,并且您认为.env文件的权限可能有误,请像这样检查它们:

# Check the permissions
cd /path/to/app
ls -l -a

# IF required change the file permissions
sudo chmod 660 .env

笔记

另请注意,根据您的开发环境,$_ENV可以在homestead.yaml或等位置设置一些变量nginx.conf

于 2016-09-07T22:06:41.163 回答
0

我经历过这个。由于上面@Spholt 给出的一些提示,原因是apache(用户www-data)由于文件权限而无法读取.env。所以我更改了文件权限以确保服务器(apache)对文件具有读取权限。只是那个和繁荣,现在一切都在工作!

于 2018-10-27T08:34:46.170 回答