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

O Serviço de Aplicativo do Azure fornece um serviço de hospedagem na Web altamente escalonável e com aplicação automática de patches. Este tutorial de início rápido mostra como implantar um aplicativo PHP no Serviço de Aplicativo do Azure no Windows.

Crie o aplicativo Web usando a CLI do Azure no Cloud Shell e use o Git para implantar o código PHP de exemplo para o aplicativo Web.

Sample app running in Azure

Você pode seguir as etapas aqui usando um computador Mac, Windows ou Linux. A conclusão das etapas demora cerca de cinco minutos assim que os pré-requisitos são instalados.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

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

Baixar o exemplo localmente

  1. Em uma janela de terminal, execute os comandos a seguir. Ele clonará o aplicativo de exemplo no computador local e fará com que você navegue 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 o branch padrão é main.

    git branch -m main
    

    Dica

    A alteração do nome do branch não é necessária para o Serviço de Aplicativo. No entanto, como muitos repositórios estão alterando o branch padrão para main, este início rápido também mostra como implantar um repositório por meio de main.

Executar o aplicativo localmente

  1. Execute o aplicativo no local para ver como ele deve ficar quando o implantar no Azure. Abra uma janela do terminal e use o comando php para iniciar o servidor Web do PHP interno.

    php -S localhost:8080
    
  2. Abra um navegador da Web e navegue até o aplicativo de exemplo em http://localhost:8080.

    Você vê a mensagem Olá, Mundo! no aplicativo de exemplo exibido na página.

    Sample app running locally

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

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito 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 o comando.

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

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

Configurar um usuário de implantação

O FTP e o Git local podem implantar em um aplicativo Web do Azure usando um usuário de implantação. Após configurar o usuário de implantação, use-o em todas as implantações do Azure. O nome de usuário e a senha da implantação no nível da conta são diferentes das 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> pelo nome de usuário e a senha do usuário de implantação.

  • O nome de usuário deve ser exclusivo no Azure. Para envios por push do Git local, não deve conter o símbolo "\@".
  • A senha deve ter pelo menos oito caracteres, com dois destes três elementos: letras, números, símbolos.
az webapp deployment user set --user-name <username> --password <password>

A saída JSON mostra a senha como null. Se receber um erro 'Conflict'. Details: 409, altere o nome de usuário. Se receber um erro 'Bad Request'. Details: 400, use uma senha mais forte.

Registre seu nome de usuário e senha para usá-los na implantação de 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, é possível excluir posteriormente todo o grupo de recursos com uma única etapa simples.

No Cloud Shell, crie um grupo de recursos com o comando az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local Europa Ocidental. Para ver todos os locais com suporte para o Serviço de Aplicativo na camada Gratuito, execute o comando az appservice list-locations --sku FREE.

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

Em geral, você cria seu grupo de recursos e os recursos em uma região próxima a você.

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

Criar um Plano do Serviço de Aplicativo do Azure

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

O exemplo a seguir cria um plano do Serviço de Aplicativo denominado myAppServicePlan usando o tipo de preço myAppServicePlan:

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

Quando o Plano do Serviço de Aplicativo for criado, a CLI do Azure mostrará informações semelhantes ao exemplo a seguir:

{ 
  "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 um aplicativo Web

  1. No Cloud Shell, crie um aplicativo Web no plano do Serviço de Aplicativo do myAppServicePlan com o comando az webapp create.

    No exemplo a seguir, substitua <app-name> por um nome do aplicativo exclusivo globalmente (os caracteres válidos são a-z, 0-9 e -). A execução é predefinida para PHP|7.4. Para ver todos os runtimes com suporte, execute az webapp list-runtimes.

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

    Quando o aplicativo Web for criado, a CLI do Azure mostrará um resultado semelhante 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.

    Observação

    A URL do Git remoto é mostrada na propriedade deploymentLocalGitUrl com o formato https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Salve essa URL, pois você precisará dela mais tarde.

  2. Navegue até o aplicativo Web recém-criado. Substitua <app-name> pelo nome do aplicativo exclusivo criado na etapa anterior.

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

    Seu novo aplicativo Web deve ficar assim:

    Empty web app page

Enviar do Git para o Azure

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

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

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Envie por push para o Azure remoto para implantar seu aplicativo com o comando a seguir. Quando solicitado a fornecer credenciais pelo Gerenciador de Credenciais do Git, insira 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
    

    Esse comando pode demorar um pouco para ser executado. Na execução, ele exibe informações semelhantes ao seguinte exemplo:

  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 até o aplicativo

Navegue até o aplicativo implantado usando o navegador da Web.

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

O código de exemplo do PHP está em execução em um aplicativo Web do Serviço de Aplicativo do Azure.

Sample app running in Azure

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

Atualizar localmente e reimplantar o código

  1. Usando um editor de texto local, abra o arquivo index.php no aplicativo do PHP e faça uma pequena alteração no texto dentro da cadeia de caracteres para echo:

    echo "Hello Azure!";
    
  2. Na janela do terminal local, confirme suas alterações no Git e então envie por push as alterações do código para o Azure.

    git commit -am "updated output"
    git push azure main
    
  3. Depois que a implantação for concluída, retorne para a janela do navegador que foi aberta durante a etapa Navegar até o aplicativo e atualize a página.

    Updated sample app running in Azure

Gerenciar seu novo aplicativo do Azure

  1. Vá para o portal do Azure para gerenciar o aplicativo Web que você criou. Pesquise e selecione Serviços de Aplicativos.

    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 opções diferentes para configurar seu aplicativo.

Limpar os recursos

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos. Se você acha que não precisará desses recursos no futuro, exclua o grupo de recursos executando o seguinte comando no Cloud Shell:

az group delete --name myResourceGroup

Esse comando pode demorar um pouco para ser executado.

O Serviço de Aplicativo do Azure fornece um serviço de hospedagem na Web altamente escalonável e com aplicação automática de patches. 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.

Você pode seguir as etapas aqui usando um computador Mac, Windows ou Linux. A conclusão das etapas demora cerca de cinco minutos assim que os pré-requisitos são instalados.

Para concluir este início rápido, você precisa de:

1 – Obter o repositório de exemplo

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

  1. Em uma janela do terminal, execute os comandos a seguir para clonar a amostra do aplicativo no seu computador local e navegar para o diretório 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 comando php para iniciar o servidor Web PHP interno.

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

    Screenshot of the sample app running locally.

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

2 - Implantar 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 na pasta local usando o comando az webapp up:

az webapp up --runtime "PHP:8.2" --os-type=linux
  • Se o comando az não for reconhecido, verifique se você tem a CLI do Azure instalada.
  • O argumento --runtime "PHP:8.2" cria o aplicativo web com a versão 8.2 do PHP.
  • O argumento --os-type=linux cria o aplicativo Web no Serviço de Aplicativo no Linux.
  • Opcionalmente, você pode especificar um nome com o argumento --name <app-name>. Um nome será gerado automaticamente se você não o fornecer.
  • Opcionalmente, você pode incluir o argumento --location <location-name>, em que <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 comando az account list-locations.
  • Caso receba a mensagem de erro "Não foi possível detectar de modo automático a pilha de runtime do seu aplicativo", verifique se você está executando o comando no diretório de código (confira Solução de problemas de detecção automática com o comando az webapp up).

O comando pode levar alguns minutos para ser concluído. Durante a execução, o comando envia mensagens sobre como criar o grupo de recursos, o plano do Serviço de Aplicativo e o recurso do aplicativo, como configurar o registro em log e como executar a implantação por zip. Em seguida, ele fornece a mensagem "Você pode iniciar o aplicativo em http://<nome-do-aplicativo>.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"
}

Observação

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

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

O código de exemplo do PHP está em execução 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 o aplicativo e reimplantar

  1. Usando um editor de texto local, abra o arquivo index.php no aplicativo do PHP e faça uma pequena alteração no texto dentro da cadeia de caracteres para echo:

    echo "Hello Azure!";
    
  2. Salve as alterações, depois reimplante o aplicativo usando mais uma vez o comando az webapp up com esses argumentos:

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

    Screenshot of the updated sample app running in Azure.

4 – Gerenciar seu novo aplicativo do Azure

  1. Vá para o portal do Azure para gerenciar o aplicativo Web que você criou. Pesquise e selecione Serviços de Aplicativos.

    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 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 opções diferentes para configurar seu aplicativo.

5 – Limpar recursos

Ao terminar o aplicativo de exemplo, você poderá remover todos os recursos do aplicativo do Azure. Isso ajudará você a evitar cobranças extras e manterá sua assinatura do Azure menos entulhada. Remover o 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

Esse comando leva um minuto para ser executado.

Próximas etapas