У меня установлено приложение Laravel 5.2 на сервере AWS Opsworks. Интерфейс веб-браузера работает отлично. Но когда я пытаюсь запустить команду Artisan из командной строки (php artisan xxxxxxx), я продолжаю получать ошибку подключения mysql [2002]. Поэтому я сузил его до переменных среды. У нас есть 40 переменных, определенных в файле .env. Я начал с добавления нескольких простых выражений эха в свой ремесленный скрипт, чтобы вывести вары соединения с базой данных. Он будет отображать только имя базы данных. Хост, пользователь и пропуск были пустыми. Я подумал, что, возможно, Laravel просто был умным и не повторял их из соображений безопасности. Поэтому я решил повторить ВСЕ переменные среды в скрипте artisan. Только двое из них откликнулись бы эхом. Остальные пустые. Есть ли причина, по которой мастер laravel не может читать большинство переменных окружения в .env?
Мастер Laravel не читает все переменные среды
comment
проверьте синтаксис, я бы посоветовал вам опубликовать .env, но ни один программист не захочет этого делать.
- person Sari Yono   schedule 12.02.2016
Ответы (1)
Проблема сводилась к тому, как AWS реализует переменные подключения к базе данных. При развертывании AWS помещает эту информацию в конфигурацию apache. Однако из-за характера интерфейса командной строки Apache на картинке не фигурирует. Итак, нам пришлось создать рецепт повара, который запускается последним, берет только что написанные переменные env из конфигурации apache и создает файл .env. Это довольно избыточно, но, похоже, сейчас работает нормально.
person
Andrew Christensen
schedule
15.03.2016