Я наконец нашел выход.Предоставление документации для тех, кто сталкивается с той же проблемой.
Что я пытался сделать ...
Моя главная цель состояла в том, чтобы протестировать приложение Laravel 5.7 наживой сервер AWS Elastic Beanstalk (EB).Мне также был нужен способ визуализации данных с помощью phpMyAdmin, инструмента, который соответствует моим потребностям.Это очень простое приложение CRUD, предназначенное только для изучения основ обеих технологий.
Что я делал (работал)
В основном следовал обычному рабочему процессу создания приложения EBиспользуя веб-консоль.
- Назовите приложение
- Выберите PHP в качестве платформы
- Начните с базового приложения (пока не загружайте код)
- Нажмите настроить дополнительные параметры
- В карточке безопасности выберите пару ключей и сохраните.( Это полезно для SSH на вашем сервере )
- В карточке базы данных создайте экземпляр RDS.Выберите любые параметры, которые соответствуют вашим потребностям, и задайте имя пользователя / пароль.
- Создание среды.
Через некоторое время у вас должны быть все ресурсы, созданные EB (экземпляры EC2 и RDS, безопасностьgroup, EIP, Buckets и т. д.) в среде приложения.
Подготовка приложения Laravel - это простой процесс.Вы не должны забывать изменить config / database.php для чтения серверных переменных.Мой подход состоял в том, чтобы определить их в начале файла.
Основные источники проблем заключаются в настройке экземпляра сервера для включения всего программного обеспечения и конфигурации, необходимых для вашего приложения и конкретных потребностей.Это делается путем включения файла .yaml
в папку .ebextensions
.Эта папка должна находиться в корневом каталоге вашего приложения laravel.Также хорошей идеей будет проверить синтаксис перед отправкой другой версии приложения в EB.В соответствии с моими потребностями я использовал этот скрипт , который в основном устанавливает phpMyAdmin при развертывании новой версии.В частности, для этого сценария запуска должны быть определены переменные среды, а именно $PMA_VER, $PMA_USERNAME, $PMA_PASSWORD
для работы phpMyAdmin.Вы можете создать больше переменных среды на вкладке программного обеспечения вашей страницы конфигурации EB.Прочитайте документы.
Еще одна деталь, которая может вызвать проблемы при запуске команд при запуске с использованием сценария yaml (в частности, миграция ), связана с версиями Laravel и MySql.Как, например, я использую Laravel 5.7 и вариант версии mySql по умолчанию в мастере создания EB RDS - что-то вроде 5.6.x.Это вызовет проблемы типа :
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))
Если это ваш сценарий, несмотря на то, что вы уже гуглили и разобрались с добавлением строки кодаSchema::defaultStringLength(191);
для функции загрузки вашего app / Providers / AppServiceProviders.php файла добьется цели.
Вы можете выполнить обычную миграцию, передав скрипт:
container_commands:
01_drop_tables:
command:
"php artisan migrate:fresh"
02_initdb:
command:
"php artisan migrate"
Это удалит существующие таблицы, избегая конфликтов, и создаст новую на основе вашего кода.Вы можете читать больше журналов с вашего сервера, используя SSH'ing и получая содержимое /var/log/eb-activity.log
.