Создание веб-приложения 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 введите учетные данные, созданные на шаге настройки пользователя развертывания (а не те, которые используются для входа на портал 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
Эта команда занимает минуту.