Создание веб-приложения PHP в Службе приложений Azure

Служба приложений Azure — это служба веб-размещения с самостоятельной установкой исправлений и высоким уровнем масштабируемости. Из этого краткого руководства вы узнаете, как развернуть приложение PHP в Службе приложений Azure на платформе Windows.

Создайте веб-приложение с помощью Azure CLI в Cloud Shell и разверните пример кода PHP в веб-приложении с помощью Git.

Пример приложения, выполняющегося в Azure

Выполните приведенные здесь инструкции с помощью компьютера Mac, Windows или Linux. После установки необходимых компонентов для выполнения этих шагов потребуется около пяти минут.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

Для работы с этим кратким руководством сделайте следующее:

Скачать пример на локальный компьютер

  1. Выполните следующие команды в окне терминала. Так вы клонируете пример приложения на локальный компьютер и перейдете в каталог, содержащий пример кода.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Убедитесь, что по умолчанию задана ветвь main.

    git branch -m main
    

    Совет

    В Службе приложений не требуется менять имя ветви. Так как main задается как ветвь по умолчанию для многих репозиториев, в этом кратком руководстве показано, как развернуть репозиторий из main.

Локальный запуск приложения

  1. Запустите приложение локально, чтобы увидеть, как оно будет выглядеть после развертывания в Azure. Откройте окно терминала и выполните команду php, чтобы запустить встроенный веб-сервер PHP.

    php -S localhost:8080
    
  2. Откройте веб-браузер и перейдите к примеру приложения по адресу http://localhost:8080.

    На странице отобразится сообщение Hello World! из примера приложения.

    Пример приложения, выполняющегося локально

  3. В окне терминала нажмите клавиши CTRL+C, чтобы выйти из веб-сервера.

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Снимок экрана: пример открытия Azure Cloud Shell с помощью кнопки
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Кнопка запуска Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Снимок экрана: кнопка

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Настойка пользователя развертывания

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

Чтобы настроить пользователя развертывания, выполните в Azure Cloud Shell команду az webapp deployment user set. Вместо <username> и <password> укажите имя пользователя и пароль для развертывания.

  • Имя пользователя должно быть уникальным в Azure. Кроме того, чтобы отправка в локальный репозиторий Git работала, имя пользователя не должно содержать символ @.
  • Пароль должен содержать не менее восьми символов и включать два из трех следующих элементов: буквы, цифры и символы.
az webapp deployment user set --user-name <username> --password <password>

В выходных данных JSON пароль отображается как null. Если появляется сообщение об ошибке 'Conflict'. Details: 409, измените имя пользователя. Если появляется сообщение об ошибке 'Bad Request'. Details: 400, используйте более надежный пароль.

Запишите имя пользователя и пароль и используйте их для развертывания веб-приложений.

Создание или изменение группы ресурсов

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

В Cloud Shell создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем myResourceGroup в расположении Западная Европа. Чтобы просмотреть все поддерживаемые расположения для службы приложений уровня Бесплатный, выполните команду az appservice list-locations --sku FREE.

az group create --name myResourceGroup --location "West Europe"

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

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

Создание плана службы приложений Azure

В Cloud Shell создайте план службы приложений с помощью команды az appservice plan create.

В следующем примере создается план службы приложений с именем myAppServicePlan и ценовой категорией Бесплатный.

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux

После создания плана службы приложений в Azure CLI отображается информация следующего вида:

{ 
  "freeOfferExpirationTime": null,
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Создание веб-приложения.

  1. В Cloud Shell создайте веб-приложение в рамках плана службы приложений myAppServicePlan с помощью команды az webapp create.

    В следующем примере замените <app-name>глобальным уникальным именем приложения (допустимые символы: a-z, 0-9 и -). Для среды выполнения установлено значение PHP|7.4. Список всех поддерживаемых сред выполнения можно получить с помощью команды az webapp list-runtimes.

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --deployment-local-git
    

    Когда веб-приложение будет создано, в Azure CLI отобразится примерно следующее:

     Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
     {
       "availabilityState": "Normal",
       "clientAffinityEnabled": true,
       "clientCertEnabled": false,
       "cloningInfo": null,
       "containerSize": 0,
       "dailyMemoryTimeQuota": 0,
       "defaultHostName": "<app-name>.azurewebsites.net",
       "enabled": true,
       < JSON data removed for brevity. >
     }
     

    Вы создали пустое веб-приложение с включенным развертыванием Git.

    Примечание.

    URL-адрес удаленного репозитория Git отображается в свойстве deploymentLocalGitUrl в формате https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Сохраните этот URL-адрес для дальнейшего использования.

  2. Перейдите к только что созданному веб-приложению. Замените <app-name> уникальным именем приложения, созданного на предыдущем шаге.

    http://<app-name>.azurewebsites.net
    

    Новое веб-приложение должно выглядеть так:

    Страница пустого веб-приложения

Публикация в Azure из Git

  1. Так как вы развертываете ветвь main, для Службы приложений нужно указать main как ветвь развертывания по умолчанию (см. раздел Изменение ветви развертывания). В Azure Cloud Shell настройте параметр приложения DEPLOYMENT_BRANCH с помощью команды az webapp config appsettings set.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Вернитесь к окну терминала (в локальном расположении) и добавьте удаленное приложение Azure в локальный репозиторий Git. Замените <deploymentLocalGitUrl-from-create-step> URL-адресом удаленного репозитория Git, который вы сохранили при создании веб-приложения.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Отправьте код в удаленное приложение Azure, чтобы развернуть приложение. Когда диспетчер учетных данных Git запрашивает учетные данные, убедитесь, что вы ввели учетные данные, созданные в локальном развертывании Git, а не учетные данные, используемые для входа в портал Azure.

    git push azure main
    

    Выполнение этой команды может занять несколько минут. При выполнении эта команда выводит приблизительно следующие сведения:

  Counting objects: 2, done.
  Delta compression using up to 4 threads.
  Compressing objects: 100% (2/2), done.
  Writing objects: 100% (2/2), 352 bytes | 0 bytes/s, done.
  Total 2 (delta 1), reused 0 (delta 0)
  remote: Updating branch 'main'.
  remote: Updating submodules.
  remote: Preparing deployment for commit id '25f18051e9'.
  remote: Generating deployment script.
  remote: Running deployment command...
  remote: Handling Basic Web Site deployment.
  remote: Kudu sync from: '/home/site/repository' to: '/home/site/wwwroot'
  remote: Copying file: '.gitignore'
  remote: Copying file: 'LICENSE'
  remote: Copying file: 'README.md'
  remote: Copying file: 'index.php'
  remote: Ignoring: .git
  remote: Finished successfully.
  remote: Running post deployment command(s)...
  remote: Deployment successful.
  To https://<app-name>.scm.azurewebsites.net/<app-name>.git
      cc39b1e..25f1805  main -> main
  

Переход в приложение

Перейдите в развернутое приложение с помощью веб-браузера.

http://<app-name>.azurewebsites.net

Пример кода PHP выполняется в веб-приложении службы приложений Azure.

Пример приложения, выполняющегося в Azure

Поздравляем! Вы развернули свое первое приложение PHP в службе приложений.

Обновление на локальном компьютере и повторное развертывание кода

  1. В локальном текстовом редакторе в приложении PHP откройте файл index.php и внесите небольшое изменение в текстовой строке рядом с echo:

    echo "Hello Azure!";
    
  2. В окне терминала на локальном компьютере зафиксируйте изменения в Git, а затем отправьте изменение кода в Azure.

    git commit -am "updated output"
    git push azure main
    
  3. После развертывания вернитесь к окну браузера, открытому на шаге перехода в приложение, и обновите страницу.

    Обновленный пример приложения, выполняющегося в Azure

Управление новым приложением Azure

  1. Перейдите на портал Azure для управления созданным веб-приложением. Найдите в поиске и выберите Службы приложений.

    Поиск Служб приложений, портал Azure, создание веб-приложения PHP

  2. Выберите имя приложения Azure.

    Переход к приложению Azure на портале

    Отобразится страница обзора вашего веб-приложения. Вы можете выполнять базовые задачи управления: обзор, остановку, перезагрузку и удаление.

    Страница службы приложений на портале Azure

    Меню веб-приложение предоставляет различные параметры для настройки приложения.

Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если эти ресурсы вам не понадобятся в будущем, вы можете удалить группу ресурсов, выполнив следующую команду в Cloud Shell:

az group delete --name myResourceGroup

Ее выполнение может занять до минуты.

Служба приложений Azure — это служба веб-размещения с самостоятельной установкой исправлений и высоким уровнем масштабируемости. Из этого краткого руководства вы узнаете, как развернуть приложение PHP в службе приложений Azure на платформе Linux.

Снимок экрана: пример приложения, выполняющегося в Azure.

Выполните приведенные здесь инструкции с помощью компьютера Mac, Windows или Linux. После установки необходимых компонентов для выполнения этих шагов потребуется около пяти минут.

Для работы с этим кратким руководством вам понадобится:

1. Получение репозитория с примерами

Вы можете создать веб-приложение с помощью Azure CLI в Cloud Shell и развернуть пример кода PHP в веб-приложении с помощью Git.

  1. В окне терминала выполните следующие команды, чтобы клонировать пример приложения на локальный компьютер и перейти к корневому каталогу проекта.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Чтобы запустить приложение в локальной среде, с помощью команды php запустите встроенный веб-сервер PHP.

    php -S localhost:8080
    
  3. В веб-браузере перейдите к примеру приложения по адресу http://localhost:8080.

    Снимок экрана: пример приложения, выполняющегося локально.

  4. В окне терминала нажмите клавиши CTRL+C, чтобы выйти из веб-сервера.

2. Развертывание кода приложения в Azure

В Azure CLI есть команда az webapp up , которая создает необходимые ресурсы и развертывает приложение на одном шаге.

Разверните код в локальной папке, выполнив в окне терминала команду az webapp up:

az webapp up --runtime "PHP:8.2" --os-type=linux
  • Если команда az не распознается, проверьте, установлен ли у вас Azure CLI.
  • Аргумент --runtime "PHP:8.2" создает веб-приложение с PHP версии 8.2.
  • Аргумент --os-type=linux создает веб-приложение на основе Службы приложений Azure в Linux
  • При необходимости можно указать имя с аргументом --name <app-name>. Если вы не предоставляете его, то имя создается автоматически.
  • При необходимости вы можете использовать аргумент --location <location-name>, где <location_name> является доступным регионом Azure. Список допустимых регионов для учетной записи Azure можно получить, выполнив команду az account list-locations.
  • Если отображается сообщение об ошибке Could not auto-detect the runtime stack of your app (Не удалось автоматически определить стек среды выполнения приложения), убедитесь, что вы выполняете команду в правильном каталоге с кодом (см. статью об устранении неполадок с автоматическим обнаружением с помощью команды az webapp up на сайте GitHub).

Выполнение команды может занять несколько минут. Во время выполнения он предоставляет сообщения о создании группы ресурсов, плане Служба приложений и ресурсе приложения, настройке ведения журнала и развертывании ZIP. Затем оно выдает сообщение You can launch the app at http://<app-name>.azurewebsites.net (Вы можете запустить приложение по адресу http://.azurewebsites.net). Это URL-адрес приложения в Azure.

The webapp '<app-name>' doesn't exist
Creating Resource group '<group-name>' ...
Resource group creation complete
Creating AppServicePlan '<app-service-plan-name>' ...
Creating webapp '<app-name>' ...
Configuring default logging for the app, if not already enabled
Creating zip with contents of dir /home/msangapu/myPhpApp ...
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
You can launch the app at http://<app-name>.azurewebsites.net
{
  "URL": "http://<app-name>.azurewebsites.net",
  "appserviceplan": "<app-service-plan-name>",
  "location": "centralus",
  "name": "<app-name>",
  "os": "linux",
  "resourcegroup": "<group-name>",
  "runtime_version": "php|8.2",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "//home//msangapu//myPhpApp"
}

Примечание.

Команда az webapp up выполняет следующие действия:

Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.

Пример кода PHP выполняется в Службе приложений Azure.

Снимок экрана: пример приложения, выполняющегося в Azure и отображающего

Поздравляем! Вы развернули первое приложение PHP для Служба приложений с помощью портал Azure.

3. Обновление и повторное развертывание приложения

  1. В локальном текстовом редакторе в приложении PHP откройте файл index.php и внесите небольшое изменение в текстовой строке рядом с echo:

    echo "Hello Azure!";
    
  2. Сохраните изменения, а затем повторно разверните приложение с помощью команды az webapp up с такими аргументами:

    az webapp up --runtime "PHP:8.2" --os-type=linux
    
  3. После завершения развертывания вернитесь к окну браузера, открывшемуся во время перехода к шагу приложения , и обновите страницу.

    Снимок экрана: обновленный пример приложения, выполняющегося в Azure.

4. Управление новым приложением Azure

  1. Перейдите на портал Azure для управления созданным веб-приложением. Найдите в поиске и выберите Службы приложений.

    Снимок экрана: портал Azure с введенным в поле поиска условием

  2. Выберите имя приложения Azure.

    Снимок экрана: список Служб приложений в Azure. Выделено имя демонстрационной службы приложений.

    Должна отображаться страница обзора веб-приложения. Вы можете выполнять базовые задачи управления: обзор, остановку, перезагрузку и удаление.

    Снимок экрана: страница обзора Службы приложений на портале Azure. На панели действий выделена группа кнопок

    Меню веб-приложение предоставляет различные параметры для настройки приложения.

5. Очистка ресурсов

Завершив работу с примером приложения, можно удалить все ресурсы для приложения в Azure. Это помогает избежать дополнительных расходов и не загромождает подписку Azure. Удаление группы ресурсов также повлечет удаление всех ресурсов в группе ресурсов, что является самым быстрым способом удаления всех ресурсов Azure для приложения.

Удалите группу ресурсов с помощью команды az group delete.

az group delete --name myResourceGroup

Эта команда занимает минуту.

Следующие шаги