Статьи

Полное руководство по развертыванию приложений PHP в облаке

Этот пост был впервые опубликован в блоге Auth0 и опубликован здесь полностью с их разрешения.

TL; DR: Существует популярная мантра среди разработчиков, которая выглядит так: писать, тестировать и развертывать . В этом руководстве я покажу вам, как развертывать приложения PHP на различных платформах облачных серверов, таких как Google Cloud , Microsoft Azure , Heroku , IBM Bluemix и других.


Введение в облачные серверы

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

  • Экономически эффективно.
  • У вас есть свобода изменять серверное программное обеспечение в соответствии с вашими потребностями.
  • Облачные серверы очень хорошо масштабируются.
  • Стабильность и безопасность.

Фактически, многие компании переместили свою инфраструктуру в облако, чтобы снизить стоимость и сложность. Это отличный вариант для малого, среднего и корпоративного бизнеса. Если вы пишете много учебных пособий и выполняете POC (Подтверждение концепции), как я, это также отличный выбор для вас!

Универсальное PHP-приложение включает в себя общий стек LAMP (Linux, Apache, Mysql и PHP) .

  • Linux: операционная система, которая запускает другие пакеты программного обеспечения.
  • Apache: веб-сервер, на котором выполняется код PHP. Популярное альтернативное программное обеспечение — Nginx .
  • MySQL: база данных. Популярным альтернативным программным обеспечением является PostgreSQL.
  • PHP: серверный язык для сборки приложения.

Для ускоренного курса на LAMP / MAMP / WAMP, посмотрите этот премиальный ресурс .

Теперь давайте рассмотрим, как развертывать приложения PHP на нескольких платформах облачных серверов.

Heroku

Heroku — это облачная платформа, которая помогает вам развертывать и размещать приложения современными способами. Это делает всю тяжелую работу за вас. Давайте быстро рассмотрим, как развернуть и поддерживать PHP-приложение на heroku.

PHP-архитектура Heroku
PHP Heroku Архитектура

Если у вас нет учетной записи, создайте ее на heroku.com . Тогда иди и установи героку кли . После установки клонируйте это простое PHP-приложение StarWars .

Heroku запускает ваше PHP-приложение в dyno, умном контейнере, который предоставляет современный стек с вашим выбором веб-сервера (Apache или Nginx) и среды выполнения (PHP или HHVM).

Убедитесь, что вы выполните следующие действия:

  • Создайте файл .env.example из .env.example .
  • Вы должны иметь учетную запись в Auth0 .
  • Перейдите на панель Auth0 Dashboard и нажмите кнопку «Создать нового клиента».
  • Назовите свое новое приложение и выберите «Обычные веб-приложения».
  • В настройках вашего нового клиентского приложения Auth0 добавьте http://localhost:8000 к URL-адресам разрешенных обратных вызовов.
  • Скопируйте свой идентификатор клиента, секрет клиента , домен и URL обратного вызова . Убедитесь, что вы присваиваете им правильные переменные в файле .env .

У нас есть файл composer.json который содержит список пакетов, которые нужны приложению. Для установки этих пакетов запустите composer install на локальном компьютере. Не знакомы с Composer? Это видео может помочь.

Идите вперед и запустите приложение. Приложение должно работать так:

Целевая страница
Целевая страница

Зарегистрированный пользователь
Зарегистрированный пользователь

Потрясающие! Наше приложение работает локально. Время развернуть! Первое, что мы сделаем, это добавим Procfile в корневой каталог нашего приложения.

Создайте новый файл с именем Procfile без расширения файла и добавьте следующее:

 web: vendor/bin/heroku-php-apache2 

Procfile — это текстовый файл в корневом каталоге вашего приложения, который определяет типы процессов и явно объявляет, какую команду следует выполнить, чтобы запустить ваше приложение на heroku.

Если вы заинтересованы в использовании Nginx в качестве веб-сервера, то содержимое вашего Procfile будет:

 web: vendor/bin/heroku-php-nginx 

Теперь, когда вы добавили Procfile, загрузите проект в GitHub или Bitbucket . Мой Starwazapp .

Перейдите на dashboard.heroku.com/apps и создайте новое приложение, например, так:

Создать новое приложение
Создать новое приложение из панели инструментов

Дайте ему имя примерно так:

Дайте приложению имя
Дайте приложению имя

Выберите метод развертывания. В нашем случае мы будем использовать GitHub следующим образом:

Подключиться к GitHub
Подключиться к GitHub

Причина выбора GitHub — сделать процесс разработки и сопровождения очень плавным. Разработчики могут работать над новыми функциями, используя рабочий процесс git.

Теперь введите имя репо в обведенной области и нажмите Поиск . Heroku будет искать ваш репо под вашей учетной записью GitHub и отображать его так

Поиск репо
Поиск репо

Нажмите на connect как это так

Нажмите на подключение
Нажмите на кнопку подключения

Heroku подключит репо так

Связанное репо
Связанный проект

Прокрутите немного вниз. Это интересная часть. Heroku позволяет включать автоматическое развертывание одним нажатием кнопки. Это также дает вам возможность подождать, пока процесс непрерывной интеграции пройдет, прежде чем приступить к работе. В реальном приложении у вас будет набор тестов для вашей кодовой базы. Код разработчика работает с набором тестов. Если он пройдет, код будет передан в производство.

Возможность включить развертывание

Нажмите, чтобы включить автоматическое развертывание. У нас нет службы CI, поэтому нам не нужно включать эту опцию. Теперь давайте развернем основную ветку.

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

Нажмите на ветку Развернуть . Heroku просканирует ваш файл composer.lock , установит необходимые пакеты и развернет!

Развертывание
Развернуть наконец

Нажмите кнопку « Просмотр» , чтобы проверить ваше приложение.

по электронной почте Ой
Ошибка 500

По электронной почте Ой! У нас ошибка 500. Ага, мы еще не установили никаких переменных среды. Локально у нас был файл .env . На Heroku нет файла .env , но есть способ установить переменные окружения. Перейдите в раздел «Настройки» на панели инструментов и добавьте их в качестве переменных конфигурации следующим образом:

Добавить переменные конфигурации

О, еще одна вещь! Новый URL обратного вызова в моем случае — http://starwazapp.herokuapp.com . Убедитесь, что вы добавили новый URL-адрес обратного вызова в URL-адреса разрешенных обратных вызовов на панели мониторинга Auth0 .

Ваше приложение должно быть живым и работающим сейчас!

Приложение работает
Живое приложение

Внести небольшое изменение

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

Откройте index.php и измените содержимое <p> с Heard you don't want to migrate to PHP 7? Dare us! Heard you don't want to migrate to PHP 7? Dare us! в Star Wars - The Awakening! , Зафиксируйте и нажмите на вашу основную ветку. Теперь перейдите на вкладку « Активность » на панели инструментов Heroku и обратите внимание на сборку. Перезагрузите приложение, и вы увидите разницу.

Построить успешно
Построить успешно

Новая версия приложения
Новая версия

База данных, кэширование и Cron Jobs

Давайте быстро поговорим о том, как обрабатывать базы данных, кэширование и задачи cron. На Heroku вы можете использовать ClearDB и Postgres с PHP. Добавьте ClearDB в ваше приложение так:

 heroku addons:create cleardb:ignite 

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

ClearDB — это мощная, отказоустойчивая база данных как услуга в облаке для приложений на базе MySQL.

 <?php $url = parse_url(getenv("CLEARDB_DATABASE_URL")); $server = $url["host"]; $username = $url["user"]; $password = $url["pass"]; $db = substr($url["path"], 1); $conn = new mysqli($server, $username, $password, $db); ?> 

используя mysqli

Вы можете настроить его в соответствии со стилем PDO. Добавьте Postgres в свое приложение так:

 heroku addons:create heroku-postgresql:hobby-dev 

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

Heroku предоставляет множество дополнений для кэширования, от memcache , до ironcache , ironcache и других. Вы можете проверить, как использовать memcache с PHP на Heroku здесь .

Наконец, вы можете использовать Heroku Scheduler для запуска заданий в вашем приложении через запланированные промежутки времени.

Google Cloud

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

Google Cloud предлагает различные варианты размещения приложений PHP. Платформа предлагает App Engine (полностью управляемый) , Compute Engine (масштабируемые виртуальные машины ) и Container Engine (кластеры Kubernetes) .

В нашем случае мы будем использовать App Engine. Абстрагирует инфраструктуру прочь. Давайте приступим к развертыванию нашего знаменитого приложения Star Wars в Google App Engine.

При использовании Google App Engine вы можете выбрать стандартную или гибкую среду. Последнее, как следует из названия, позволяет установить любое расширение PHP, которое работает в Debian Linux, имеет настраиваемый веб-сервер Nginx, доступную для записи файловую систему, последние версии PHP и позволяет запускать сценарии развертывания с использованием composer.json .

Мы будем использовать гибкую среду. Идите вперед и создайте новый проект . Нажмите « Создать» , дайте проекту имя, выберите регион, в котором вы хотите разместить свое приложение, и включите биллинг.

Примечание: вы не будете платить без вашего разрешения.

Теперь загрузите Google SDK и установите инструменты Google Cloud.

Установка Google SDK
Установка Google SDK

Запуск gcloud
Запуск gcloud

Создайте файл app.yaml в корне нашего проекта следующим образом:

app.yaml

 runtime: php env: flex 

Итак, наш файл .env был .env в Google Cloud. Альтернативой этому является добавление переменных среды в файл app.yaml следующим образом:

 ... env_variables: # The values here will override those in ".env". This is useful for # production-specific configuration. However, feel free to set these # values in ".env" instead if you prefer. APP_LOG: errorlog 

Теперь разверните свое приложение с консоли, запустив gcloud app deploy .

Захватите URL, в моем случае это https://starwars-166515.appspot.com/ , и добавьте URL-адреса Allowed Origins (CORS) и Allowed Callback в вашу панель Auth0 . Также добавьте URL к AUTH0_CALLBACK_URL в вашем .env файле.

Запустите gcloud app deploy снова, чтобы подготовить новую версию приложения. Проверьте свое приложение сейчас. Надо жить так:

Живое приложение
Живое приложение

База данных, кэширование и Cron Jobs

Google Cloud предоставляет платформу Cloud SQL Instance. Узнайте, как настроить, подключить и создать экземпляры MySQL для вашего приложения здесь .

Вы также можете использовать phpMyAdmin в Google App Engine .

Google App Engine включает в себя реализации стандартных API Memcache и Memcached . Узнайте, как использовать Memcache в своем приложении в Google Cloud .

Служба Cron App Engine позволяет настраивать регулярно запланированные задачи, которые выполняются в определенное время или через определенные промежутки времени. Узнайте, как планировать задания cron и использовать очереди задач с PHP в Google Cloud .

Относительно легко развернуть приложения Laravel , Symfony и WordPress на облачной платформе Google.

IBM BlueMix

IBM Bluemix позволяет легко конфигурировать, развертывать и масштабировать в мощной высокопроизводительной глобальной облачной инфраструктуре. Давайте приступим к развертыванию нашего знаменитого приложения Star Wars в IBM Bluemix.

Зарегистрируйтесь в Bluemix примерно так:

BlueMix Регистрация
Зарегистрироваться на Bluemix

Примечание. Платформа Bluemix предлагает 30-дневную бесплатную пробную версию, поэтому у вас есть возможность попробовать развернуть собственное приложение, прежде чем передавать данные своей кредитной карты.

Идите вперед и создайте организацию и пространство. Я назвал мой космический prod .

Приборная доска

Теперь продолжайте и установите CLI Cloud Foundry . Как только вы это сделаете, войдите в систему с вашего терминала следующим образом:

 cf api https://api.ng.bluemix.net/ cf login 

Аутентификация через терминал
Войдите в Bluemix

Следующим шагом является создание файла manifest.yml в корневом каталоге приложения. Файл manifest.yml содержит основную информацию о вашем приложении, такую ​​как имя, объем памяти, выделяемый для каждого экземпляра, и маршрут. Наш файл манифеста должен выглядеть так:

 --- applications: - name: starwarsapp memory: 512M instances: 1 host: starwarsapp 

Вы также можете явно указать buildpack в файле манифеста. К счастью, Cloud Foundry автоматически определяет, какой сборочный пакет требуется, когда вы запускаете приложение.

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

Наконец, разверните свое приложение, выполнив следующую команду следующим образом:

 cf push <yourapp> 

<yourapp> должно быть уникальным именем.

Начало развертывания
Начало развертывания

Завершение развертывания
Завершение развертывания

Попробуйте запустить приложение сейчас. В моем случае URL-адрес является starwarsapp.mybluemix.net . К сожалению, ошибка 500. Мы еще не загрузили наши переменные окружения. Как мы это делаем с Bluemix?

Вы можете использовать CLI Cloud Foundry или пользовательский интерфейс Bluemix для установки переменных среды. Давайте использовать пользовательский интерфейс Bluemix. Итак, следуйте инструкциям ниже:

  • Откройте приборную панель Bluemix.

    Панель инструментов - приложение работает

  • Нажмите на приложение. Вы будете перенаправлены на другую страницу с более подробной информацией о приложении.

  • Выберите Runtime на левой панели.

    Нажмите на время выполнения

  • Теперь нажмите на переменные окружения

    Выберите переменные среды

  • Прокрутите вниз и нажмите кнопку Добавить , чтобы добавить переменные среды, например, так

    Добавить переменные среды

  • Нажмите кнопку Save . Как только вы это сделаете, ваше приложение будет автоматически перезагружено.

Теперь возьмите URL-адрес, в моем случае это https://starwarsapp.mybluemix.net/ , и добавьте его в URL-адреса Allowed Origins (CORS) и Allowed Callback на панели Auth0 .

Теперь проверьте ваше приложение — оно должно быть вживую!

База данных, кэширование и Cron Jobs

Cloud Foundry предоставляет возможность создавать сервисы. IBM Bluemix предлагает базу данных Cloudant NoSQL (имя Bluemix для CouchDB). Вы можете использовать инструмент cf для создания служб баз данных, например, так:

 cf create-service cloudantNoSQLDB Lite starwarsapp 

IBM Bluemix также предлагает сервис ClearDB MySQL. Таким образом, вы можете использовать инструмент cf для его создания следующим образом:

 cf create-service cleardb spark starwarsapp 

Они предлагают MongoDB , PostgreSQL и RethinkDB .

Вы всегда можете использовать инструмент Cloud Foundry для проверки множества вещей, таких как журналы, переменные среды и т. Д., Например:

  • cf logs --recent yourapp — показывает журналы вашего приложения.
  • cf env yourapp — показывает переменные среды, связанные с вашим приложением.
  • cf marketplace — показывает все услуги, которые Bluemix может предложить.

IBM Bluemix также предлагает Redis Cloud , полностью управляемый облачный сервис для размещения и запуска набора данных Redis в BlueMix в доступной и масштабируемой форме.

IBM Bluemix предоставляет сервис Workload Scheduler . Этот сервис позволяет интегрировать ваше приложение с возможностью планирования рабочих процессов. Вне рамок cron используйте планирование заданий внутри и вне Bluemix. Легко создавайте рабочие процессы в своем приложении, чтобы запускать их регулярно, в определенное время, на событиях (например, при удалении или обновлении файла), в соответствии с вашими потребностями. Вы можете использовать пользовательский интерфейс Workload Scheduler или использовать API.

Начните с планирования рабочих мест здесь .

Кроме того, здесь описано, как развернуть приложение Laravel в IBM Bluemix .

Microsoft Azure

Microsoft Azure — еще одна мощная облачная платформа, которая позволяет легко масштабировать приложения. Давайте начнем с развертывания нашего приложения Star Wars на Azure.

С помощью Microsoft Azure вы можете выполнить развертывание через:

  • FTP.
  • Синхронизация с облачной папкой.
  • Местный Гит.
  • Облачная служба контроля версий, такая как GitHub или Bitbucket.

В нашем случае мы настроим развертывание с помощью Git.

  1. Сначала создайте учетную запись в Microsoft Azure .

    Приборная доска
    Приборная доска

  2. Нажмите Новый на левой панели.

  3. Нажмите Просмотреть все рядом с Marketplace.

  4. Нажмите Web + SQL , затем продолжайте и создайте.

    Веб + SQL

  5. Вам будет предложено выбрать предложение для удобного вам типа подписки. Я выбрал бесплатную пробную версию . При этом вы получите кредит Azure на 200 долларов.

  6. Дайте вашему приложению имя, затем создайте базу данных SQL. Ну, это не нужно для нашего приложения, но по какой-то причине Azure заставляет вас его создавать.

    Создать новое приложение
    Создать новое приложение

  7. Теперь, когда наше приложение создано, нажмите « Службы приложений » на левой панели, чтобы увидеть ваше приложение.

    Сервисы приложений
    Новое приложение

  8. Нажмите на приложение, выберите параметры развертывания , затем нажмите на GitHub .

  9. Авторизуйте доступ к своему репо, выберите проект и ветку. В моем случае у меня есть azure ветка. Это ветка, которую я буду использовать для развертывания своего кода на платформе Azure.

    Конфигурация в вашем приложении

  10. Проверьте уведомления о развертывании.

    Уведомления о развертывании

    Теперь перейдите по http://[yoursitename].azurewebsites.net . В моем случае это http://starwarzapp.azurewebsites.net .

    К сожалению, ошибка HTTP 500. Что происходит? Хорошо, нам нужно снова установить переменные окружения.

  11. Перейдите к своему приложению в Службах приложений , нажмите Настройки приложения , а затем добавьте переменные среды справа.

Теперь захватите URL-адрес приложения, в моем случае это http://starwarzapp.azurewebsites.net/ и добавьте URL-адреса Allowed Origins (CORS) и Allowed Callback в вашу панель Auth0 .

  1. По умолчанию развертывание Azure ничего не делает с нашим файлом composer.json или composer.lock . Таким образом, пакет не устанавливается. Теперь вернитесь в Службы приложений , щелкните свое приложение, затем перейдите в Инструменты разработки и выберите Расширение . Выберите расширение Composer и согласитесь с правовыми условиями.

    Добавить расширение

  2. Теперь внесите небольшие изменения в свое приложение и снова нажмите на GitHub. Вы должны увидеть это развертывание так:

    Изменить

    Детали развертывания

  3. Теперь проверьте ваше приложение снова. Надо жить и работать!

    Целевая страница

База данных, кэширование и Cron Jobs

Microsoft Azure предлагает Azure Redis Cache . Он основан на популярном кеше Redis с открытым исходным кодом. Его легко создавать и использовать так:

  1. Нажмите Создать> Данные + Хранилище> Redis Cache .
  2. Введите имя кеша, выберите регион и создайте его.

Проверьте документацию о том, как использовать это.

Для планирования и выполнения задач Azure предлагает Планировщик . Это позволяет вам:

  • Позвоните в Службу внутри или за пределами Azure.
  • Запускайте задания по любому графику.
  • Используйте очереди хранилища Azure для длительных или автономных заданий.
  • Вызовите очереди служебной шины Azure.

Узнайте, как создавать задания и управлять ими с помощью планировщика .

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

  1. Войдите в портал Azure.

  2. Нажмите Новый в левой панели панели инструментов. Выберите Data + Storage в Marketplace, затем выберите базу данных MySQL.

  3. Идите вперед и настройте новую базу данных MySQL. Введите имя, выберите подписку, местоположение и заполните необходимые поля. Создайте!

  4. Подключиться к базе данных.

    Информация о соединении

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

Amazon Web Services

Все больше компаний используют AWS (Amazon Web Services) для хранения всех видов данных, от изображений и mp3-файлов до видео, чем любая другая облачная платформа. Фактически, многие организации, такие как Uber, Spotify или Salesforce, полностью используют Amazon Web Services — для размещения, развертывания и инфраструктуры. AWS имеет массу продуктов для разработчиков.

Сервис, который мы будем использовать для развертывания нашего известного приложения StarWars, — Amazon Elastic Beanstalk . Давайте начнем.

  • Зарегистрируйте учетную запись AWS, если у вас ее нет.
  • Пройдите к консоли Elastic Beanstalk .
  • Создать новое приложение.
    Создать новое приложение
  • Нажмите на create web server .
    Создать веб-сервер
  • Создайте среду веб-сервера.
    Тип среды
  • Загрузите свой код. Elastic Beanstalk требует, чтобы вы загрузили zip-файл вашей кодовой базы. Вы можете вручную заархивировать его, но я предпочитаю делать это из моего терминала следующим образом: zip ../starwarsapp.zip -r * .[^.]*
  • Теперь загрузите его в AWS примерно так:
    Загрузить код в AWS
  • Проверьте доступность для URL приложения. Моя выглядит так:
    URL
  • Следующая страница позволяет нам настроить экземпляр базы данных. Наше приложение не требует, поэтому мы можем пропустить это.
    Пропустить настройку инстанса БД
  • Этот шаг позволяет нам изменить наши детали конфигурации. По умолчанию это нормально для нашего приложения.
    Детали конфигурации
  • Теперь добавьте переменные окружения следующим образом:
    Переменные среды

Теперь возьмите URL-адрес, в моем случае это http://starwarzapp.us-west-2.elasticbeanstalk.com и добавьте URL-адреса Allowed Origins (CORS) и Allowed Callback в вашу панель Auth0 . Убедитесь, что вы добавили его как переменную среды в Elastic Beanstalk.

  • Добавить разрешение вроде так:
    разрешение
  • Просмотрите информацию перед запуском.
    Рассмотрение
  • Launch.

развернутый

Живое приложение
Живое приложение

Проверьте, как развернуть:

База данных, кэширование и Cron Jobs

Вы можете использовать экземпляр БД Amazon Relational Database Service (Amazon RDS) для хранения данных, собранных и измененных вашим приложением. База данных может быть присоединена к вашей среде и управляться Elastic Beanstalk, или создаваться и управляться извне. Узнайте, как легко добавить экземпляр БД в ваше приложение .

Для кэширования Amazon Web Services предлагает ElastiCache . Это веб-сервис, который упрощает развертывание, эксплуатацию и масштабирование хранилища данных в кэш-памяти в кэш-памяти. Amazon ElastiCache поддерживает два механизма в памяти с открытым исходным кодом:

Amazon ElastiCache автоматически обнаруживает и заменяет отказавшие узлы, снижая накладные расходы, связанные с самоуправляемыми инфраструктурами, и обеспечивает отказоустойчивую систему, которая снижает риск перегруженных баз данных, что замедляет работу веб-сайтов и увеличивает время загрузки приложений. Благодаря интеграции с Amazon CloudWatch Amazon ElastiCache обеспечивает улучшенную видимость ключевых показателей производительности, связанных с вашими узлами Redis или Memcached.

Такие компании, как AirBnb , Healthguru , PlaceIQ и Tokyo Data Network, используют ElastiCache для кэширования на нескольких уровнях, охватывающих фрагменты HTML, результаты дорогостоящих запросов к БД, данные промежуточных сеансов и результаты поиска.

Узнайте, как установить ElastiCache Cluster Client для PHP здесь .

Вот отличный пост по созданию счетчика посетителей PHP с ElastiCache и Elastic Beanstalk

Вы можете настроить работу cron на Elastic Beanstalk. Узнайте, как запускать задания cron в Amazon Web Services (AWS) Elastic Beanstalk .

Laravel Forge

Laravel Forge , созданная Тейлором Отвеллом, — это платформа, которая помогает вам развернуть и запустить приложение за считанные минуты. Это делает тяжелую работу для вас. Forge заботится о предоставлении ваших серверов популярным провайдерам облачного хостинга, таким как Linode, Digital Ocean и AWS. Первоначально он был создан для приложений Laravel, но теперь он поддерживает практически любое приложение PHP.

Laravel Forge
Laravel Forge

Laravel Forge позволяет вам легко выполнять следующие действия, помимо предоставления серверов:

  • Он интегрируется с LetsEncrypt для создания бесплатных сертификатов SSL для ваших приложений.
  • Легко управлять заданиями и очередями.
  • Сотрудничество с вашей командой, предоставив коллегам панель управления вашего сервера.

У Мэтта Штауффера есть потрясающая статья о развертывании вашего первого приложения Laravel в Forge .

У Джеймса Фэйрхерста также есть отличное руководство по использованию Laravel Forge для настройки сервера AWS .

Laracasts.com, самая популярная образовательная платформа PHP, предлагает серию по управлению серверами с помощью Forge .

И, конечно же, мы упоминаем об этом в нашем курсе Laravel , а также освещаем его в подробных руководствах, подобных этим .

Envoyer

Envoyer — это платформа, которая позволяет развертывать PHP без простоев — это SaaS-версия Envoy . Он позволяет вам интегрироваться с различными сервисами, такими как Gitlab, Slack, Bitbucket и т. Д.

С Envoyer вы можете выполнять:

  • Плавные откаты развертывания.
  • Развертывание на нескольких серверах.
  • Мониторинг Cron Jobs.
  • Выполните проверки работоспособности приложения.

Deployer

Deployer — это инструмент развертывания для PHP. Это позволяет вам делать следующее:

  • Запускайте задачи параллельно.
  • Атомное развертывание.
  • Rollbacks.
  • Создание сценариев развертывания в виде рецептов.

Он работает с Laravel , Symfony , CakePHP , Yiiframework , Zend , FuelPHP , Drupal , WordPress и Magento . Прочтите эту прекрасную статью о развертывании PHP-приложений с помощью Deployer .

Вывод

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

Как вы справились со своими развертываниями? Пожалуйста, дайте мне знать в комментариях ниже!