Создание веб-приложения PHP в Службе приложений Azure
Служба приложений Azure — это служба веб-размещения с самостоятельной установкой исправлений и высоким уровнем масштабируемости. Из этого краткого руководства вы узнаете, как развернуть приложение PHP в Службе приложений Azure на платформе Windows.
Создайте веб-приложение с помощью Azure CLI в Cloud Shell и разверните пример кода PHP в веб-приложении с помощью Git.
Выполните приведенные здесь инструкции с помощью компьютера Mac, Windows или Linux. После установки необходимых компонентов для выполнения этих шагов потребуется около пяти минут.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Необходимые компоненты
Для работы с этим кратким руководством сделайте следующее:
Скачать пример на локальный компьютер
Выполните следующие команды в окне терминала. Так вы клонируете пример приложения на локальный компьютер и перейдете в каталог, содержащий пример кода.
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
Убедитесь, что по умолчанию задана ветвь
main
.git branch -m main
Совет
В Службе приложений не требуется менять имя ветви. Так как
main
задается как ветвь по умолчанию для многих репозиториев, в этом кратком руководстве показано, как развернуть репозиторий изmain
.
Локальный запуск приложения
Запустите приложение локально, чтобы увидеть, как оно будет выглядеть после развертывания в Azure. Откройте окно терминала и выполните команду
php
, чтобы запустить встроенный веб-сервер PHP.php -S localhost:8080
Откройте веб-браузер и перейдите к примеру приложения по адресу
http://localhost:8080
.На странице отобразится сообщение Hello World! из примера приложения.
В окне терминала нажмите клавиши CTRL+C, чтобы выйти из веб-сервера.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Настойка пользователя развертывания
Для развертывания в веб-приложение 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 }
Создание веб-приложения.
В 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-адрес для дальнейшего использования.Перейдите к только что созданному веб-приложению. Замените <app-name> уникальным именем приложения, созданного на предыдущем шаге.
http://<app-name>.azurewebsites.net
Новое веб-приложение должно выглядеть так:
Публикация в Azure из Git
Так как вы развертываете ветвь
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'
Вернитесь к окну терминала (в локальном расположении) и добавьте удаленное приложение Azure в локальный репозиторий Git. Замените <deploymentLocalGitUrl-from-create-step> URL-адресом удаленного репозитория Git, который вы сохранили при создании веб-приложения.
git remote add azure <deploymentLocalGitUrl-from-create-step>
Отправьте код в удаленное приложение 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.
Поздравляем! Вы развернули свое первое приложение PHP в службе приложений.
Обновление на локальном компьютере и повторное развертывание кода
В локальном текстовом редакторе в приложении PHP откройте файл
index.php
и внесите небольшое изменение в текстовой строке рядом сecho
:echo "Hello Azure!";
В окне терминала на локальном компьютере зафиксируйте изменения в Git, а затем отправьте изменение кода в Azure.
git commit -am "updated output" git push azure main
После развертывания вернитесь к окну браузера, открытому на шаге перехода в приложение, и обновите страницу.
Управление новым приложением Azure
Перейдите на портал Azure для управления созданным веб-приложением. Найдите в поиске и выберите Службы приложений.
Выберите имя приложения Azure.
Отобразится страница обзора вашего веб-приложения. Вы можете выполнять базовые задачи управления: обзор, остановку, перезагрузку и удаление.
Меню веб-приложение предоставляет различные параметры для настройки приложения.
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если эти ресурсы вам не понадобятся в будущем, вы можете удалить группу ресурсов, выполнив следующую команду в Cloud Shell:
az group delete --name myResourceGroup
Ее выполнение может занять до минуты.
Служба приложений Azure — это служба веб-размещения с самостоятельной установкой исправлений и высоким уровнем масштабируемости. Из этого краткого руководства вы узнаете, как развернуть приложение PHP в службе приложений Azure на платформе Linux.
Выполните приведенные здесь инструкции с помощью компьютера Mac, Windows или Linux. После установки необходимых компонентов для выполнения этих шагов потребуется около пяти минут.
Для работы с этим кратким руководством вам понадобится:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Git
- PHP
- Azure CLI для выполнения команд в любой оболочке для создания и настройки ресурсов Azure.
1. Получение репозитория с примерами
Вы можете создать веб-приложение с помощью Azure CLI в Cloud Shell и развернуть пример кода PHP в веб-приложении с помощью Git.
В окне терминала выполните следующие команды, чтобы клонировать пример приложения на локальный компьютер и перейти к корневому каталогу проекта.
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
Чтобы запустить приложение в локальной среде, с помощью команды
php
запустите встроенный веб-сервер PHP.php -S localhost:8080
В веб-браузере перейдите к примеру приложения по адресу
http://localhost:8080
.В окне терминала нажмите клавиши 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://
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
выполняет следующие действия:
создание группы ресурсов по умолчанию;
создание плана службы приложений по умолчанию;
создание приложения с указанным именем.
развертывание с помощью Zip всех файлов из текущей рабочей папки с включенной автоматизацией сборки;
Локальное кэширование параметров в файле .azure/config, позволяющее не указывать их снова при последующем развертывании с помощью
az webapp up
или других командaz webapp
из папки проекта. По умолчанию кэшированные значения используются автоматически.
Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net
.
Пример кода PHP выполняется в Службе приложений Azure.
Поздравляем! Вы развернули первое приложение PHP для Служба приложений с помощью портал Azure.
3. Обновление и повторное развертывание приложения
В локальном текстовом редакторе в приложении PHP откройте файл
index.php
и внесите небольшое изменение в текстовой строке рядом сecho
:echo "Hello Azure!";
Сохраните изменения, а затем повторно разверните приложение с помощью команды az webapp up с такими аргументами:
az webapp up --runtime "PHP:8.2" --os-type=linux
После завершения развертывания вернитесь к окну браузера, открывшемуся во время перехода к шагу приложения , и обновите страницу.
4. Управление новым приложением Azure
Перейдите на портал Azure для управления созданным веб-приложением. Найдите в поиске и выберите Службы приложений.
Выберите имя приложения Azure.
Должна отображаться страница обзора веб-приложения. Вы можете выполнять базовые задачи управления: обзор, остановку, перезагрузку и удаление.
Меню веб-приложение предоставляет различные параметры для настройки приложения.
5. Очистка ресурсов
Завершив работу с примером приложения, можно удалить все ресурсы для приложения в Azure. Это помогает избежать дополнительных расходов и не загромождает подписку Azure. Удаление группы ресурсов также повлечет удаление всех ресурсов в группе ресурсов, что является самым быстрым способом удаления всех ресурсов Azure для приложения.
Удалите группу ресурсов с помощью команды az group delete.
az group delete --name myResourceGroup
Эта команда занимает минуту.