Рубрики
Uncategorized

Как развернуть веб -приложение Laravel в Google App Engine

Наши разработчики многое пережили. Это их истории. Это говорит Индра, одна из … Tagged with Laravel, Tutorial, DevOps, WebDev.

Развернуть, как никто не смотрит (4 серии части)

Наши разработчики многое пережили. Это их истории. Это говорит Индра, один из наших старших приложений.

Индра: Я опытный инженер -программист и руководитель команды. Я знаю свои проекты наизнанку — я должен. Я тот, кто следит за тем, чтобы все кусочки соединялись, серверы работают и работают, и самые сложные задачи выполняются. Когда я этого не делаю, я преподаю и провожу исследования в университете. Я хочу постоянно обновлять свои навыки и передать другим то, что я знаю.

На этой неделе у нас был клиент, который хотел, чтобы его веб -приложение Laravel было развернуто в Google App Engine. Было несколько причин для этого:

  • Стоимость (сообщается, что это более дешевле, чем Amazon ) Много региона
  • Автоматическое масштабирование

Кроме того, мы уже используем много API Google в этом конкретном приложении, так что это выглядело как довольно простая работа.

Что ты знаешь? Это было нелегко. Но я заставил это работать в конце концов.

Проходя через этот опыт, я нашел трудный способ, которым едва нет никакой информации по этой теме. И единственный учебник, который я смог найти, был опубликован в сообществе Google, и в нем не хватало много деталей.

До начала:

Я рекомендую перед началом вашего путешествия по развертыванию приложения Laravel с Google App Engine, чтобы прочитать весь этот пост. Подготовьте все. И только тогда сделайте развертывание. В противном случае вы можете потерять много времени и подчеркнуть себя, как и я.

Отказ от ответственности:

Хотя я не внес никаких изменений в настройку Nginx, я расскажу об этом в будущем учебном пособии. Я подумываю о том, чтобы сделать учебник по добавлению пользовательского домена и о проблемах, с которыми я столкнулся. Но на этой теме уже есть несколько очень хороших учебных пособий.

Кроме того, я использовал стандартный MySQL для этого урока, но также возможно использование больших данных.

Поскольку я не хотел, чтобы этот пост был трудным для чтения, я добавил в некоторые разделы ссылки на видео на YouTube вместо изображений.

Некоторые из документации в Google относительно развертывания PHP отсутствуют, поэтому я заменил ее в некоторых местах документацией от Python. Если вы планируете развернуть приложение Laravel с Google App Engine, просто следуя документации Google, я настоятельно рекомендую взглянуть на оба.

Предварительное чтение (вы можете пропустить подготовку к развертыванию)

1.) Google Cloud Shell 2.) PHP на Google Cloud Platform Анкет Мы будем использовать гибкую среду, так что читаем об этом. 3.) (Необязательно) Документация для Python

Подготовка к развертыванию

1.) Создайте учетную запись Google Cloud: Здесь или более прямо Здесь Анкет На данный момент вы получаете 365 -дневную или 300 долларов США за бесплатную пробную версию (в зависимости от того, что наступит). Если вы не очень старый пользователь (бета -тестер), вам также потребуется добавить свою кредитную карту, но вас не будут взиматься.

2.) Создайте новый проект (быстрое видео Здесь если нужно)

3.) Создайте экземпляр двигателя приложения (быстрое видео Здесь если нужно)

4.) Мы будем использовать Google Cloud Shell развернуть. Чтобы иметь возможность использовать его, вам нужно Скачать облако SDK для вашей операционной системы. Для некоторых настроек вы можете использовать облачную оболочку прямо из своего браузера, как видно Здесь Анкет Я не использую его, но вы можете прочитать документы, чтобы узнать, как. Но вы действительно должны установить его для простоты использования. Если вы запускаете Windows, вам нужно открыть установщик с правами администратора. Следуйте учебному пособию QuickStart от Google для других OSS.

5.) Прежде чем продолжить с Google Cloud Shell, я рекомендую Чтение этого о среде PHP.

6.) Войдите в консоли, используя команду gcloud auth login Анкет Вы будете войти через браузер. Если вы хотите увидеть все доступные команды, напишите gloud help В командной строке и нажмите Введите Анкет

7.) Написать Gcloud Config Set Project_id В командной строке, где Project_ id Является ли идентификатор проекта, который вы только что дали своему недавно созданному проекту. Его можно найти на консоли Google на первой странице после того, как вы выберете проект в разделе «Виджет информации о проекте».

8.) Чтобы увидеть список всех ваших проектов типа Список проектов GCLOUD Анкет Это для предварительных условий. Мы пройдемся через настройку базы данных и необходимые загрузки по мере продвижения.

Это для предварительных условий. Мы пройдемся через настройку базы данных и необходимые загрузки по мере продвижения.

Подготовка вашего проекта

Для этой части я использовал этот учебник как вдохновение. Вы можете прочитать его или полностью пропустить, так как я буду освещать все шаги, необходимые для развертывания, за исключением детали хранилища файлов. Для этого я дам вам некоторую информацию, но не полный урок.

Для этого урока я буду использовать в качестве примера приложения, которое я строю прямо сейчас. Простой блог с Рюкзак для Ларавела как панель администратора. Пока мы здесь, я должен сообщить вам, что Vue.js совместим с Google App Engine. Вам просто нужно запустить NPM Установка и npm run prod И это поможет. В этом уроке мы не будем использовать vue.js.

1.) Измените каталог на папку приложения. Для простоты использования вы можете настроить вещи, как ниже. Вам нужно будет создать app.yaml файл. Просто создайте его вручную на том же уровне, что и Composer.json.

2.) Теперь, когда у нас есть файл, нам нужно настроить базу данных и детали проекта.

3.) Чтобы настроить детали проекта, мы не будем использовать файл .env от Laravel, а вместо этого App.yaml. Пожалуйста, следуйте комментариям, добавленным в моем примере app.yaml, чтобы понять, как я его написал. Это должно выглядеть так:

4.) Генерировать ключ приложения. Чтобы сгенерировать ключ приложения для установки Laravel, нам нужно запустить: PHP Artisan Key: Generate -Show Анкет А затем скопируйте и вставьте это в App.yaml.

5.) Обновите Composer.json, чтобы соответствовать требованиям Google App Engine. В сценариях добавьте скрипт, как ниже. В Post-Install-Cmd Скрипт есть рекомендация добавить PHP Artisan Cache: Clear Однако, по моему опыту с Google Deploy, это не работает. Вот почему я рекомендую оставить это. Я добавил только минимальные пакеты Laravel в этом примере Composer.json.

6.) Запустить gcloud приложение развертывание В командной строке Google SDK (вы должны быть в папке приложения) и при запросе ответа Y Анкет

7.) Запустить Gcloud App Просмотр Чтобы увидеть ваше приложение.

Настройка рабочих мест Cron

Вот Учебник Google Для создания рабочих мест Cron. Я также посмотрел на Версия Python Анкет Знание того, как настроить задания Cron с помощью Google App Engine при наличии приложения Laravel, является основным.

В нашем приложении было много графиков, и мне было трудно заставить их работать или найти ответ в любом месте в Интернете. К счастью, у нас была та же проблема с Amazon, и они уже знали исправление. Я попробовал это с помощью Google App Engine и Alallelujah!

1.) Создайте файл cron.yaml и добавьте этот код:

2.) В ваших маршрутах вам нужно добавить маршрут планировщика, как это (за пределами любого промежуточного программного обеспечения):

3.) Запустить gcloud app deploy cron.yaml Анкет

4.) Вы можете увидеть своих кронов или запустить их вручную в очереди задачи приложения.

Настройка базы данных SQL

Кажется, это заставляет некоторых людей вращаться, поэтому я постараюсь сделать его максимально простым и визуальным. Я также добавил быстрое видео Здесь Анкет

1.) Зайдите в свою облачную консоль Google.

2.) В меню найдите SQL и нажмите на него.

3.) Нажмите «Создать экземпляр» и выберите MySQL.

4.) Выберите второе поколение и выберите идентификатор и пароль.

5.) Ваш экземпляр вращается.

6.) Теперь скопируйте имя подключения экземпляра и вставьте его в свое приложение. YAML в beta_setting cloud_sql_instances: exance_connection_name Анкет

7.) Также заполните данные подключения базы данных в app.yaml. Скопируйте идентификатор экземпляра и вставьте его для db_database. Затем скопируйте имя соединения экземпляра и добавьте его после/cloudsql/для db_socket.

8.) Развернуть приложение снова.

9.) База данных теперь пуста, и я получаю эту ошибку:

10.) Подключение к базе данных:

  • Использование сертификатов (прочитайте об этом в разделе «Данные» статьи).
  • Использование командной строки (прочитайте об этом в разделе «Запуск миграции статьи»).

Импорт полностью мигрированной базы данных с данными в ИТ

Чтобы импортировать полную базу данных в недавно созданную базу данных, вам необходимо использовать Google Bucket.

1.) Сбросить вашу текущую базу данных: mysqldump -user -p your_database> your_database_dump.sql

2.) Перейдите на приборную панель и в левую сторону нажмите на хранение. Выберите ведро и загрузите дамп базы данных.

3.) Перейдите на панель панели управления Google Console и нажмите на идентификатор экземпляра:

4.) Нажмите на импорт.

5.) Выберите файл, который вы загрузили на шаге 2.

6.) Нажмите на расширенные параметры и под базой данных, выберите имя базы данных.

7.) Нажмите на импорт.

Просмотреть данные

Рекомендуемый способ просмотреть данные, по крайней мере, по моему опыту, состоит в том, чтобы использовать Workbench и сертификаты Google. Для этой части я использовал Этот документ как вдохновение.

1.) Перейдите на панель панели Google Console и нажмите на свой идентификатор экземпляра.

2.) В верхней части экрана (прямо над диаграммами) выберите SSL.

3.) Прокрутите вниз и нажмите «Создать сертификат клиента» и храните его на своем компьютере. Я рекомендую один на компьютер, но это зависит от вас.

4.) Откройте Workbench MySQL и в вкладке подключения В деталях из вкладки обзора = > Подключитесь к этому экземпляру квадрату (в основном для IP). Используйте тот же пользователь и пароль, что и ваше приложение.yaml.

И на вкладке SSL добавьте только что только что загруженные сертификаты. В использовании SSL вы можете выбрать требование. Теперь у вас есть доступ к вашей базе данных.

Следующим и последним шагом этого учебника являются управление миграциями и сеялками, но не стесняйтесь пропустить его, если у вас уже есть все, что вам нужно.

Бегущие миграции и сеялки

Чтобы запустить миграции и сеялки, вам нужно сделать хак, но если вы нашли другой способ, пожалуйста, дайте мне знать в комментариях ниже, потому что я искал более элегантный метод.

1.) Иди и скачать Прокси -файл Анкет

2.) В каталоге Cloud Console Google в каталог, где вы загрузили файл.

3.) Создать Файл учетной записи службы Анкет

4.) Запустите эту команду:

5.) В вашем файле .env поместите вашу базу данных и пароль из Google и используйте Localhost в качестве хоста.

6.) В командной строке запустите любую команду миграции или сеялки, как обычно: PHP ремесленник мигрирует -семена

Или вы можете запустить одну сеялку: PHP ремесленник мигрирует DB: семена

Настройка хранения

Для настройки хранилища сделайте это в config/fileystem.php и добавить диск для Google:

Другие полезные материалы для развертывания приложения Laravel в Google App Engine:

Я надеюсь, что вам понравился этот пост и посчитали его полезным. У вас есть какие -нибудь подсказки или собственные советы? Или, может быть, несколько вопросов? Не стесняйтесь связаться. Счастливого кодирования!

Развернуть, как никто не смотрит (4 серии части)

Оригинал: «https://dev.to/updivision/how-to-deploy-a-laravel-web-app-on-google-app-engine-2hpb»