Laravel 5.2不是在ubuntu

时间:2016-09-07 19:44:53

标签: laravel ubuntu laravel-5.2 http-status-code-500 laravel-environment

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

  1. Laravel 5.2 not reading env file
  2. Laravel 5.2 .env sometimes doesn't load in time
  3. 我收到了这个错误:

    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. 如何解决这个问题?
    3. 现在我通过在Config / app.php文件中手动指定密钥并在Config / database.php文件中设置数据库值来解决了这个问题

      我怀疑我在.env文件中获得了权限/所有者错误。我正在开发Elementary OS

2 个答案:

答案 0 :(得分:4)

为确保您正在阅读最新版本的.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

注意

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

答案 1 :(得分:0)

我经历了这一点。由于上述@Spholt提供了一些提示,其原因是apache(用户www-data)由于文件权限而无法读取.env。因此,我更改了文件权限,以确保服务器(Apache)具有对该文件的读取权限。就这样,繁荣起来,现在一切都正常了!