Criar um aplicativo Web PHP no Serviço de Aplicativo do Azure

O Serviço de Aplicações do Azure oferece um serviço de alojamento na Web altamente dimensionável e com correção automática. Este tutorial de início rápido mostra como implantar um aplicativo PHP no Serviço de Aplicativo do Azure no Windows.

Crie a aplicação Web com a CLI do Azure no Cloud Shell e utilize o Git para implementar o código PHP de exemplo para a aplicação Web.

Sample app running in Azure

Pode seguir os passos aqui indicados num computador Mac, Windows ou Linux. Depois de instalados os pré-requisitos, demora cerca de cinco minutos a concluir todos os passos.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Para concluir este guia de início rápido:

Transferir o exemplo localmente

  1. Numa janela de terminal, execute os comandos seguintes. Ele clonará o aplicativo de exemplo para sua máquina local e navegará até o diretório que contém o código de exemplo.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Verifique se a ramificação padrão é main.

    git branch -m main
    

    Gorjeta

    A alteração do nome da filial não é exigida pelo Serviço de Aplicativo. No entanto, como muitos repositórios estão alterando sua ramificação padrão para main, este guia de início rápido também mostra como implantar um repositório a partir do main.

Executar a aplicação localmente

  1. Execute a aplicação localmente, para ver que aspeto deveria ter quando a implemente no Azure. Abra uma janela do terminal e use o comando php para iniciar o servidor Web PHP incorporado.

    php -S localhost:8080
    
  2. Abra um browser e navegue para a aplicação de exemplo em http://localhost:8080.

    Você vê a mensagem Hello World! do aplicativo de exemplo exibido na página.

    Sample app running locally

  3. Na janela do terminal, prima Ctrl+C para sair do servidor Web.

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Configurar um utilizador de implementação

O FTP e o Git local podem ser implantados em um aplicativo Web do Azure usando um usuário de implantação. Depois de configurar seu usuário de implantação, você pode usá-lo para todas as suas implantações do Azure. Seu nome de usuário e senha de implantação no nível de conta são diferentes de suas credenciais de assinatura do Azure.

Para configurar o usuário de implantação, execute o comando az webapp deployment user set no Azure Cloud Shell. Substitua <o nome> de usuário e <a senha> por um nome de usuário e senha de usuário de implantação.

  • O nome de usuário deve ser exclusivo no Azure e, para pushes locais do Git, não deve conter o símbolo '@'.
  • A senha deve ter pelo menos oito caracteres, com dois dos três elementos a seguir: letras, números e símbolos.
az webapp deployment user set --user-name <username> --password <password>

A saída JSON mostra a senha como null. Se obtiver o erro 'Conflict'. Details: 409, altere o nome de utilizador. Se obtiver o 'Bad Request'. Details: 400 erro, utilize uma palavra-passe mais forte.

Registre seu nome de usuário e senha para usar para implantar seus aplicativos Web.

Criar um grupo de recursos

Um grupo de recursos é um contêiner lógico no qual os recursos do Azure, como aplicativos Web, bancos de dados e contas de armazenamento, são implantados e gerenciados. Por exemplo, pode optar por eliminar todo o grupo de recursos num único passo simples mais tarde.

No Cloud Shell, crie um grupo de recursos com o comando az group create. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup, na localização Europa Ocidental. Para ver todas as localizações suportadas para o Serviço de Aplicações no escalão Gratuito, execute o comando az appservice list-locations --sku FREE.

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

Geralmente, o grupo de recursos e os recursos são criados numa região perto de si.

Quando o comando for concluído, uma saída JSON mostra as propriedades do grupo de recursos.

Criar um plano do Serviço de Aplicações do Azure

No Cloud Shell, crie um plano do Serviço de Aplicações com o comando az appservice plan create.

O exemplo seguinte cria um plano do Serviço de Aplicações com o nome myAppServicePlan, que utiliza o escalão de preços Gratuito.

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

Quando o plano do Serviço de Aplicações tiver sido criado, a CLI do Azure mostra informações semelhantes ao seguinte exemplo:

{ 
  "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
} 

Criar uma aplicação Web

  1. No Cloud Shell, crie uma aplicação Web no plano do Serviço de Aplicações myAppServicePlan com o comando az webapp create.

    No exemplo a seguir, substitua <app-name> com um nome de aplicação globalmente exclusivo (os carateres válidos são a-z, 0-9 e -). O runtime está definido como PHP|7.4. Para ver todos os runtimes suportados, execute az webapp list-runtimes.

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

    Quando a aplicação Web tiver sido criada, a CLI do Azure mostra informações semelhantes ao seguinte exemplo:

     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. >
     }
     

    Você criou um novo aplicativo Web vazio, com a implantação do git habilitada.

    Nota

    O URL do Git remoto é apresentado na propriedade deploymentLocalGitUrl, com o formato https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Guarde este URL, uma vez que vai precisar dele mais tarde.

  2. Navegue para a sua aplicação Web recentemente criada. Substitua <o nome> do aplicativo pelo nome exclusivo do aplicativo criado na etapa anterior.

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

    Eis o aspeto que a sua nova aplicação Web deve ter:

    Empty web app page

Enviar para o Azure a partir do Git

  1. Como você está implantando a main ramificação, precisa definir a ramificação de implantação padrão para seu aplicativo do Serviço de Aplicativo como main (consulte Alterar ramificação de implantação). No Cloud Shell, defina a configuração do DEPLOYMENT_BRANCH aplicativo com o az webapp config appsettings set comando.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Regresse à janela de terminal local e adicione um remoto do Azure ao seu repositório Git local. Substitua deploymentLocalGitUrl-from-create-step> pela URL do controle remoto Git que você salvou em Criar um aplicativo Web.<

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Envie para o remoto do Azure para implementar a sua aplicação com o comando seguinte. Quando o Git Credential Manager solicitar credenciais, certifique-se de inserir as credenciais criadas em Configurar um usuário de implantação, não as credenciais usadas para entrar no portal do Azure.

    git push azure main
    

    Este comando pode demorar alguns minutos a ser executado. Ao executar, apresenta informações semelhantes ao exemplo seguinte:

  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
  

Navegar para a aplicação

Utilize o browser para navegar para a aplicação implementada.

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

O código PHP de exemplo está em execução numa aplicação Web do serviço de aplicações do Azure.

Sample app running in Azure

Parabéns! Implementou a sua primeira aplicação PHP no Serviço de Aplicações.

Atualizar localmente e reimplementar o código

  1. Utilizando um editor de texto local, abra o ficheiro index.php na aplicação PHP e faça uma pequena alteração ao texto na cadeia junto a echo:

    echo "Hello Azure!";
    
  2. Na janela terminal local, consolide as suas alterações no Git e envie as alterações ao código para o Azure.

    git commit -am "updated output"
    git push azure main
    
  3. Depois de concluída a implementação, volte para a janela do browser aberta durante o passo Navegar para a aplicação e atualize a página.

    Updated sample app running in Azure

Gerenciar seu novo aplicativo do Azure

  1. Aceda ao portal do Azure para gerir a aplicação Web que criou. Pesquise e selecione Serviços de Aplicativo.

    Search for App Services, Azure portal, create PHP web app

  2. Selecione o nome do seu aplicativo do Azure.

    Portal navigation to Azure app

    A página Visão geral do seu aplicativo Web será exibida. Aqui, você pode executar tarefas básicas de gerenciamento como Procurar, Parar, Reiniciar e Excluir.

    App Service page in Azure portal

    O menu do aplicativo Web fornece diferentes opções para configurar seu aplicativo.

Clean up resources (Limpar recursos)

Nos passos anteriores, criou os recursos do Azure num grupo de recursos. Se achar que não vai precisar destes recursos no futuro, execute o seguinte comando no Cloud Shell para eliminar o grupo de recursos:

az group delete --name myResourceGroup

Este comando pode demorar alguns minutos a ser executado.

O Serviço de Aplicações do Azure oferece um serviço de alojamento na Web altamente dimensionável e com correção automática. Este guia de início rápido mostra como implantar um aplicativo PHP no Serviço de Aplicativo do Azure no Linux.

Screenshot of the sample app running in Azure.

Pode seguir os passos aqui indicados num computador Mac, Windows ou Linux. Depois de instalados os pré-requisitos, demora cerca de cinco minutos a concluir todos os passos.

Para concluir este guia de início rápido, necessita de:

1 - Obter o repositório de exemplo

Você pode criar o aplicativo Web usando a CLI do Azure no Cloud Shell e usar o Git para implantar código PHP de exemplo no aplicativo Web.

  1. Em uma janela de terminal, execute os seguintes comandos para clonar o aplicativo de exemplo para sua máquina local e navegue até a raiz do projeto.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Para executar o aplicativo localmente, use o php comando para iniciar o servidor web PHP integrado.

    php -S localhost:8080
    
  3. Navegue até o aplicativo de exemplo em http://localhost:8080 em um navegador da Web.

    Screenshot of the sample app running locally.

  4. Na janela do terminal, prima Ctrl+C para sair do servidor Web.

2 - Implante o código do aplicativo no Azure

A CLI do Azure tem um comando az webapp up que cria os recursos necessários e implanta seu aplicativo em uma única etapa.

No terminal, implante o código em sua pasta local usando o az webapp up comando:

az webapp up --runtime "PHP:8.2" --os-type=linux
  • Se o az comando não for reconhecido, certifique-se de ter a CLI do Azure instalada.
  • O --runtime "PHP:8.2" argumento cria o aplicativo Web com PHP versão 8.2.
  • O --os-type=linux argumento cria o aplicativo Web no Serviço de Aplicativo no Linux.
  • Opcionalmente, você pode especificar um nome com o argumento --name <app-name>. Se você não fornecer um, um nome será gerado automaticamente.
  • Opcionalmente, você pode incluir o argumento --location <location-name> onde <location_name> é uma região do Azure disponível. Você pode recuperar uma lista de regiões permitidas para sua conta do Azure executando o az account list-locations comando.
  • Se vir o erro "Não foi possível detetar automaticamente a pilha de tempo de execução da sua aplicação", certifique-se de que está a executar o comando no diretório de código (Consulte Resolução de problemas de deteção automática com az webapp up).

O comando pode demorar alguns minutos a ser executado. Enquanto está em execução, ele fornece mensagens sobre como criar o grupo de recursos, o plano do Serviço de Aplicativo e o recurso do aplicativo, configurar o registro em log e fazer a implantação do ZIP. Em seguida, ele fornece a mensagem "Você pode iniciar o aplicativo em http://< app-name.azurewebsites.net>", que é a URL do aplicativo no 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"
}

Nota

O comando az webapp up executa as seguintes ações:

  • Crie um grupo de recursos padrão.

  • Crie um plano padrão do Serviço de Aplicativo.

  • Crie um aplicativo com o nome especificado.

  • Zip implantar todos os arquivos do diretório de trabalho atual, com automação de compilação ativada.

  • Armazene os parâmetros em cache localmente no arquivo .azure/config para que você não precise especificá-los novamente ao implantar posteriormente com az webapp up ou outros az webapp comandos da pasta do projeto. Os valores armazenados em cache são usados automaticamente por padrão.

Navegue até o aplicativo implantado em seu navegador da Web na URL http://<app-name>.azurewebsites.net.

O código de exemplo PHP está sendo executado em um Serviço de Aplicativo do Azure.

Screenshot of the sample app running in Azure, showing 'Hello World!'.

Parabéns! Você implantou seu primeiro aplicativo PHP no Serviço de Aplicativo usando o portal do Azure.

3 - Atualizar e reimplantar o aplicativo

  1. Utilizando um editor de texto local, abra o ficheiro index.php na aplicação PHP e faça uma pequena alteração ao texto na cadeia junto a echo:

    echo "Hello Azure!";
    
  2. Salve suas alterações e reimplante o aplicativo usando o comando az webapp up novamente com estes argumentos:

    az webapp up --runtime "PHP:8.2" --os-type=linux
    
  3. Quando a implantação estiver concluída, retorne à janela do navegador que foi aberta durante a etapa Procurar até o aplicativo e atualize a página.

    Screenshot of the updated sample app running in Azure.

4 - Gerencie seu novo aplicativo do Azure

  1. Aceda ao portal do Azure para gerir a aplicação Web que criou. Pesquise e selecione Serviços de Aplicativo.

    Screenshot of the Azure portal with 'app services' typed in the search text box. In the results, the App Services option under Services is highlighted.

  2. Selecione o nome do seu aplicativo do Azure.

    Screenshot of the App Services list in Azure. The name of the demo app service is highlighted.

    A página Visão geral do seu aplicativo Web deve ser exibida. Aqui, você pode executar tarefas básicas de gerenciamento como Procurar, Parar, Reiniciar e Excluir.

    Screenshot of the App Service overview page in Azure portal. In the action bar, the Browse, Stop, Swap (disabled), Restart, and Delete button group is highlighted.

    O menu do aplicativo Web fornece diferentes opções para configurar seu aplicativo.

5 - Limpar recursos

Quando terminar o aplicativo de exemplo, você poderá remover todos os recursos do aplicativo do Azure. Ele ajuda você a evitar cobranças extras e mantém sua assinatura do Azure organizada. A remoção do grupo de recursos também remove todos os recursos do grupo de recursos e é a maneira mais rápida de remover todos os recursos do Azure para seu aplicativo.

Exclua o grupo de recursos usando o comando az group delete .

az group delete --name myResourceGroup

Este comando demora um minuto a ser executado.

Próximos passos