Criar uma aplicação Web PHP no Serviço de Aplicações do Azure

Serviço de Aplicações do Azure fornece um serviço de alojamento Web altamente dimensionável e de correção automática. Este tutorial de início rápido mostra como implementar uma aplicação PHP para Serviço de Aplicações 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.

Aplicação Web de exemplo em execução no 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. Clonará a aplicação de exemplo para o seu computador local e navegará para 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. Certifique-se de que o ramo predefinido é main.

    git branch -m main
    

    Dica

    A alteração do nome do ramo não é necessária por Serviço de Aplicações. No entanto, uma vez que muitos repositórios estão a alterar o ramo predefinido para main, este início rápido também lhe mostra como implementar um repositório a partir de 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.

    Verá a mensagem Hello World! da aplicação de exemplo apresentada na página.

    Aplicação de exemplo em execução localmente

  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. Pode utilizar os Cloud Shell comandos pré-instalados para executar o código neste artigo, sem ter de instalar nada no 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 o comando para Cloud Shell. Captura de ecrã que mostra um exemplo de 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. Captura de ecrã que mostra como iniciar Cloud Shell numa nova janela.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Captura de ecrã que mostra o botão Cloud Shell no portal do Azure

Para utilizar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

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

  3. Cole o código ou comando na sessão de 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 implementar numa aplicação Web do Azure com um utilizador de implementação. Depois de configurar o utilizador de implementação, pode utilizá-lo para todas as implementações do Azure. O nome de utilizador e a palavra-passe de implementação ao nível da conta são diferentes das suas credenciais de subscrição do Azure.

Para configurar o utilizador de implementação, execute o comando az webapp deployment user set no Azure Cloud Shell. Substitua o <nome> de utilizador e <a palavra-passe> por um nome de utilizador e palavra-passe de utilizador de implementação.

  • O nome de utilizador tem de ser exclusivo no Azure e, para os pushes locais do Git, não pode conter o símbolo "@".
  • A palavra-passe tem de ter, pelo menos, oito carateres de comprimento, com dois dos seguintes três elementos: letras, números e símbolos.
az webapp deployment user set --user-name <username> --password <password>

O resultado JSON mostra a palavra-passe 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.

Grave o seu nome de utilizador e palavra-passe para utilizar para implementar as suas aplicações Web.

Criar um grupo de recursos

Um grupo de recursos é um contentor lógico no qual os recursos do Azure, como aplicações Web, bases de dados e contas de armazenamento, são implementados e geridos. 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|7.4' --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. >
     }
     

    Criou uma nova aplicação Web vazia, com a implementação git ativada.

    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> da aplicação pelo nome exclusivo da aplicação criado no passo anterior.

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

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

    Página da aplicação Web vazia

Enviar para o Azure a partir do Git

  1. Uma vez que está a implementar o main ramo, tem de definir o ramo de implementação predefinido para a sua aplicação Serviço de Aplicações (mainconsulte Alterar ramo de implementação). No Cloud Shell, defina a definição da aplicação DEPLOYMENT_BRANCH 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> pelo URL do git remoto que guardou em Criar uma aplicação 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 Gestor de Credenciais do Git lhe pedir credenciais, certifique-se de que introduz as credenciais que criou em Configurar um utilizador de implementação e não as credenciais que utiliza para iniciar sessão 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.

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

    Aplicação de exemplo atualizada em execução no Azure

Gerir a sua nova aplicação do Azure

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

    Procurar Serviços Aplicacionais, portal do Azure, criar aplicação Web PHP

  2. Selecione o nome da sua aplicação do Azure.

    Navegação do portal para a aplicação do Azure

    Será apresentada a página Descrição Geral da sua aplicação Web. Aqui, pode realizar tarefas de gestão básicas, como Procurar, Parar, Reiniciar e Eliminar.

    Página Serviço de Aplicações no portal do Azure

    O menu da aplicação Web fornece diferentes opções para configurar a sua aplicação.

Limpar os 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.

Serviço de Aplicações do Azure fornece um serviço de alojamento Na Web altamente dimensionável e com correção automática. Este início rápido mostra como implementar uma aplicação PHP para Serviço de Aplicações do Azure no Linux.

Captura de ecrã da aplicação de exemplo em execução no 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, precisa de:

1 - Obter o repositório de exemplo

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

  1. Numa janela de terminal, execute os comandos seguintes. Clonará o exemplo de aplicação para o seu computador local e navegará para 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. Para executar a aplicação localmente, utilize o php comando para iniciar o servidor Web PHP incorporado.

    php -S localhost:8080
    
  3. Navegue para a aplicação http://localhost:8080 de exemplo em num browser.

    Captura de ecrã da aplicação de exemplo em execução localmente.

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

2 - Implementar o código da aplicação no Azure

A CLI do Azure tem um comando az webapp up que irá criar os recursos necessários e implementar a sua aplicação num único passo.

No terminal, implemente o código na pasta local com o az webapp up comando :

az webapp up --runtime "PHP:8.0" --os-type=linux
  • Se o az comando não for reconhecido, certifique-se de que tem a CLI do Azure instalada.
  • O --runtime "PHP:8.0" argumento cria a aplicação Web com a versão 8.0 do PHP.
  • O --os-type=linux argumento cria a aplicação Web no Serviço de Aplicações no Linux.
  • Opcionalmente, pode especificar um nome com o argumento --name <app-name>. Se não fornecer um, será gerado automaticamente um nome.
  • Opcionalmente, pode incluir o argumento --location <location-name> em que <location_name> se trata de uma região do Azure disponível. Pode obter uma lista de regiões permitidos para a sua conta do Azure ao executar o az account list-locations comando .
  • Se vir o erro "Não foi possível detetar automaticamente a pilha de runtime da sua aplicação", certifique-se de que está a executar o comando no diretório de código (veja Resolver problemas de deteção automática com az webapp up).

A conclusão do comando poderá demorar alguns minutos. Durante a execução, fornece mensagens sobre como criar o grupo de recursos, o plano de Serviço de Aplicações e o recurso da aplicação, configurar o registo e fazer a implementação ZIP. Em seguida, dá a mensagem "Pode iniciar a aplicação em http://< app-name.azurewebsites.net>", que é o URL da aplicação 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.0",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "//home//msangapu//myPhpApp"
}

Nota

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

Navegue para a aplicação implementada no seu browser no URL http://<app-name>.azurewebsites.net.

O código de exemplo PHP está em execução num Serviço de Aplicações do Azure.

Captura de ecrã a mostrar a aplicação de exemplo em execução no Azure, com

Parabéns! Implementou a sua primeira aplicação PHP para Serviço de Aplicações com o portal do Azure.

3 - Atualizar e reimplementar a aplicação

  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. Guarde as alterações e, em seguida, volte a implementar a aplicação com o comando az webapp up novamente com estes argumentos:

    az webapp up --runtime "PHP:8.0" --os-type=linux
    
  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.

    Captura de ecrã da aplicação de exemplo atualizada em execução no Azure.

4 - Gerir a sua nova aplicação do Azure

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

    Captura de ecrã do portal do Azure com

  2. Selecione o nome da sua aplicação do Azure.

    Captura de ecrã da lista serviços de aplicações no Azure. O nome do serviço de aplicações de demonstração está realçado.

    Será apresentada a página Descrição Geral da sua aplicação Web. Aqui, pode realizar tarefas de gestão básicas, como Procurar, Parar, Reiniciar e Eliminar.

    Captura de ecrã a mostrar a página de descrição geral do Serviço de Aplicações no portal do Azure. Na barra de ação, o grupo de botões Procurar, Parar, Trocar (desativado), Reiniciar e Eliminar está realçado.

    O menu da aplicação Web fornece diferentes opções para configurar a sua aplicação.

5 - Limpar recursos

Quando tiver terminado a aplicação de exemplo, pode remover todos os recursos da aplicação do Azure. Não incorrerá em custos adicionais e manterá a sua subscrição do Azure desocupada. Remover o grupo de recursos também remove todos os recursos no grupo de recursos e é a forma mais rápida de remover todos os recursos do Azure para a sua aplicação.

Elimine o grupo de recursos com o comando az group delete .

az group delete --name myResourceGroup

Este comando pode demorar alguns minutos a ser executado.

Passos seguintes