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.

Aplicativo de exemplo em execução no 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.

    Aplicativo de exemplo em execução local

  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. Captura de tela que mostra um exemplo de Experimente para o Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

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:

    Página de aplicativo Web vazia

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 implantação local do git, e não as credenciais usadas para entrar no portal do Azure.

    git push azure main
    

    Esse comando pode levar alguns minutos 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.

Aplicativo de exemplo em execução no 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.

    Aplicativo de exemplo atualizado em execução no 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.

    Pesquisar Serviços de Aplicativos, portal do Azure, criar aplicativo Web PHP

  2. Selecione o nome do seu aplicativo do Azure.

    Navegação no Portal para o aplicativo do Azure

    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.

    Página Serviço de Aplicativo no portal do Azure

    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.

Captura de tela do aplicativo de exemplo em execução no 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.

    Captura de tela do aplicativo de exemplo em execução no local.

  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.

Captura de tela do aplicativo de exemplo em execução no Azure, mostrando 'Olá, Mundo!'.

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.

    Captura de tela do aplicativo de exemplo atualizado em execução no 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.

    Captura de tela do portal do Azure com 'serviços de aplicativos' na caixa de texto de pesquisa. Nos resultados, a opção Serviços de Aplicativos abaixo de Serviços está realçada.

  2. Selecione o nome do seu aplicativo do Azure.

    Captura de tela da lista Serviços de Aplicativos no Azure. O nome do serviço de aplicativo de demonstração está realçado.

    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.

    Captura de tela da página de visão geral do Serviço de Aplicativo no portal do Azure. Na barra de ação, o grupo de botões Procurar, Parar, Trocar (desabilitado), Reiniciar e Excluir está realçado.

    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