Laravel 5.2 не читает из.env на Ubuntu
Примечание. Этот вопрос не является дубликатом этих вопросов:
Я получаю эту ошибку:
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.
- Какова причина?
- Как это исправить?
сейчас я решил проблему, указав ключ вручную в файле 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) имел права на чтение файла. Только это и бум, теперь все работало!