Мастер Laravel не читает все переменные среды

У меня установлено приложение Laravel 5.2 на сервере AWS Opsworks. Интерфейс веб-браузера работает отлично. Но когда я пытаюсь запустить команду Artisan из командной строки (php artisan xxxxxxx), я продолжаю получать ошибку подключения mysql [2002]. Поэтому я сузил его до переменных среды. У нас есть 40 переменных, определенных в файле .env. Я начал с добавления нескольких простых выражений эха в свой ремесленный скрипт, чтобы вывести вары соединения с базой данных. Он будет отображать только имя базы данных. Хост, пользователь и пропуск были пустыми. Я подумал, что, возможно, Laravel просто был умным и не повторял их из соображений безопасности. Поэтому я решил повторить ВСЕ переменные среды в скрипте artisan. Только двое из них откликнулись бы эхом. Остальные пустые. Есть ли причина, по которой мастер laravel не может читать большинство переменных окружения в .env?


person Andrew Christensen    schedule 12.02.2016    source источник
comment
проверьте синтаксис, я бы посоветовал вам опубликовать .env, но ни один программист не захочет этого делать.   -  person Sari Yono    schedule 12.02.2016


Ответы (1)


Проблема сводилась к тому, как AWS реализует переменные подключения к базе данных. При развертывании AWS помещает эту информацию в конфигурацию apache. Однако из-за характера интерфейса командной строки Apache на картинке не фигурирует. Итак, нам пришлось создать рецепт повара, который запускается последним, берет только что написанные переменные env из конфигурации apache и создает файл .env. Это довольно избыточно, но, похоже, сейчас работает нормально.

person Andrew Christensen    schedule 15.03.2016