Laravel 5.2 не читает из.env на Ubuntu

Примечание. Этот вопрос не является дубликатом этих вопросов:

  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']); возвращает нуль. Даже переменные среды базы данных возвращают ноль. Таким образом, это означает, что Laravel не читает из файла.env.

  1. Какова причина?
  2. Как это исправить?

сейчас я решил проблему, указав ключ вручную в файле Config/app.php и установив значения базы данных в файле Config/database.php

Я подозреваю, что у меня неверные права доступа / владельца в файле.env. Я занимаюсь разработкой в Elementary OS

2 ответа

Чтобы быть уверенным, что последняя версия вас .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,

Я испытал это. И в результате некоторого намека, данного @Spholt выше, причина была в том, что apache (пользовательские www-данные) не мог читать.env из-за прав доступа к файлу. Поэтому я изменил права доступа к файлу, чтобы сервер (apache) имел права на чтение файла. Только это и бум, теперь все работало!

Другие вопросы по тегам