Tutorial: Criar um aplicativo PHP (Laravel) e do Banco de Dados do Azure para MySQL – Servidor Flexível no Serviço de Aplicativo do Azure

APLICA-SE A: Banco de Dados do Azure para MySQL – Servidor flexível

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 usando o sistema operacional Linux.

Este tutorial mostra como criar e implantar um aplicativo PHP de exemplo no Serviço de Aplicativo do Azure e integrá-lo ao Banco de Dados do Azure para MySQL – servidor flexível no back-end. Aqui você usará a conectividade de acesso público (endereços IP permitidos) na instância do Banco de Dados do Azure para MySQL – servidor flexível para se conectar com o aplicativo do Serviço de Aplicativo.

Neste tutorial, você aprenderá como:

  • Criar uma instância do servidor flexível do Banco de Dados do Azure para MySQL
  • Conectar um aplicativo PHP à instância do Banco de Dados do Azure para MySQL – servidor flexível
  • Implantar o aplicativo no Serviço de Aplicativo do Azure
  • Atualizar o aplicativo e reimplantar

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar. Atualmente, com uma conta gratuita do Azure, você pode experimentar o Banco de Dados do Azure para MySQL com Servidor Flexível gratuitamente por 12 meses. Para obter mais informações, confira Experimente o Banco de Dados do Azure para MySQL com Servidor Flexível gratuitamente.

Pré-requisitos

Criar um Banco de Dados do Azure para MySQL – Servidor Flexível

Primeiro, provisionaremos uma instância de servidor flexível do Banco de Dados do Azure para MySQL com conectividade de acesso público, configuraremos regras de firewall para permitir que o aplicativo acesse o servidor e crie um banco de dados de produção.

Para saber como usar a conectividade de acesso privado e isolar recursos de aplicativo e banco de dados em uma rede virtual, confira Tutorial: conectar um aplicativo Web dos Serviços de Aplicativos a uma instância do Banco de Dados do Azure para MySQL – Servidor Flexível em uma rede virtual.

Criar um grupo de recursos

Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implantados e gerenciados. Vamos criar um grupo de recursos, rg-php-demo, usando o comando az group create na localização centralus.

  1. Abra o prompt de comando.
  2. Entre em sua conta do Azure.
    az login
    
  3. Escolha a sua assinatura do Azure.
    az account set -s <your-subscription-ID>
    
  4. Crie o grupo de recursos.
    az group create --name rg-php-demo --location centralus
    

Criar uma instância do servidor flexível do Banco de Dados do Azure para MySQL

  1. Para criar uma instância do Banco de Dados do Azure para MySQL – servidor flexível com conectividade de acesso público, execute o comando az flexible-server create a seguir. Substitua os valores de nome do servidor, nome de usuário do administrador e senha.

    az mysql flexible-server create \
    --name <your-mysql-server-name> \
    --resource-group rg-php-demo \
    --location centralus \
    --admin-user <your-mysql-admin-username> \
    --admin-password <your-mysql-admin-password>
    

    Agora você criou uma instância de servidor flexível do Banco de Dados do Azure para MySQL – Servidor flexível na região EUA Central. O servidor é baseado no SKU de computação do B1MS com capacidade de intermitência, com armazenamento de 32 GB, um período de retenção de backup de 7 dias, e configurado com conectividade de acesso público.

  2. Em seguida, para criar uma regra de firewall para sua instância do Banco de Dados do Azure para MySQL – servidor flexível a fim de permitir conexões de cliente, execute o comando a seguir. Quando o IP inicial e o IP final são definidos como 0.0.0.0, somente outros recursos do Azure (como aplicativos dos Serviços de Aplicativos, VMs, cluster do AKS etc.) podem se conectar à instância do Banco de Dados do Azure para MySQL – servidor flexível.

    az mysql flexible-server firewall-rule create \
     --name <your-mysql-server-name> \
     --resource-group rg-php-demo \
     --rule-name AllowAzureIPs \
     --start-ip-address 0.0.0.0 \
     --end-ip-address 0.0.0.0
    
  3. Para criar um banco de dados de produção sampledb do Banco de Dados do Azure para MySQL – servidor flexível a ser usado com o aplicativo PHP, execute o seguinte comando:

    az mysql flexible-server db create \
    --resource-group rg-php-demo \
    --server-name <your-mysql-server-name> \
    --database-name sampledb
    

Crie seu aplicativo

Exclusivamente para este tutorial, usaremos um aplicativo PHP de exemplo que exibe e gerencia um catálogo de produtos. O aplicativo oferece funcionalidades básicas, como exibir os produtos no catálogo, adicionar novos produtos, atualizar os preços dos itens existentes e remover produtos.

Para saber mais sobre o código do aplicativo, você pode explorar o aplicativo no repositório do GitHub. Para saber como conectar um aplicativo PHP ao Banco de Dados do Azure para MySQL – servidor flexível, confira Início Rápido: conectar-se usando PHP.

Neste tutorial, clonaremos diretamente o aplicativo de exemplo codificado e aprenderemos a implantá-lo no Serviço de Aplicativo do Azure.

  1. Para clonar o repositório do aplicativo de exemplo e acessar a raiz do repositório, execute os seguintes comandos:

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Execute o comando a seguir para garantir que o branch padrão seja main.

    git branch -m main
    

Criar e configurar um aplicativo Web do Serviço de Aplicativo do Azure

No Serviço de Aplicativo do Azure (aplicativos Web, aplicativos de API ou aplicativos móveis), um aplicativo sempre é executado em um Plano do Serviço de Aplicativo. Um plano de serviço de aplicativo define um conjunto de recursos de computação para um aplicativo Web ser executado. Nesta etapa, vamos criar um Plano do Serviço de Aplicativo do Azure e um aplicativo Web do Serviço de Aplicativo dentro dele, que hospedará o aplicativo de exemplo.

  1. Para criar um Plano do Serviço de Aplicativo no tipo de preço Gratuito, execute o seguinte comando:

    az appservice plan create --name plan-php-demo \
    --resource-group rg-php-demo \
    --location centralus \
    --sku FREE --is-linux
    
  2. Se você quiser implantar um aplicativo no aplicativo Web do Azure usando métodos de implantação como FTP ou Git Local, precisará configurar um usuário de implantação com credenciais de nome de usuário e senha. Depois de configurar o usuário de implantação, você poderá aproveitá-lo em todas as implantações do Serviço de Aplicativo do Azure.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. Para criar um aplicativo Web do Serviço de Aplicativo com o runtime do PHP 8.0 e configurar a opção de implantação Git Local para implantar o aplicativo em um repositório Git no computador local, execute o comando a seguir. Substitua <your-app-name> por um nome do aplicativo exclusivo globalmente (os caracteres válidos são de a até z, de 0 a 9 e -).

    az webapp create \
    --resource-group rg-php-demo \
    --plan plan-php-demo \
    --name <your-app-name> \
    --runtime "PHP|8.0" \
    --deployment-local-git
    

    Importante

    Na saída da CLI do Azure, a URL do Git remoto é exibida 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.

  4. Em seguida, definiremos as configurações de conexão de banco de dados do Banco de Dados do Azure para MySQL – servidor flexível no Aplicativo Web.

    O arquivo config.php no aplicativo PHP de exemplo recupera as informações de conexão de banco de dados (nome do servidor, nome do banco de dados, nome de usuário do servidor e senha) de variáveis de ambiente usando a função getenv(). No Serviço de Aplicativo, para definir variáveis de ambiente como Configurações de Aplicativo (appsettings), execute o seguinte comando:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --settings DB_HOST="<your-server-name>.mysql.database.azure.com" \
    DB_DATABASE="sampledb" \
    DB_USERNAME="<your-mysql-admin-username>" \
    DB_PASSWORD="<your-mysql-admin-password>" \
    MYSQL_SSL="true"
    

    Como alternativa, você pode usar o Conector de Serviço para estabelecer uma conexão entre o aplicativo do Serviço de Aplicativo e a instância do Banco de Dados do Azure para MySQL – servidor flexível. Para obter mais detalhes, confira Integrar o Banco de Dados do Azure para MySQL – servidor flexível usando o conector de serviço.

Implantar o aplicativo usando o Git Local

Agora, vamos implantar o aplicativo PHP de exemplo no Serviço de Aplicativo do Azure usando a opção de implantação Git Local.

  1. Como você está implantando o branch principal, defina o branch de implantação padrão do aplicativo do Serviço de Aplicativo como principal. Para definir o DEPLOYMENT_BRANCH em Configurações de Aplicativo, execute o seguinte comando:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Verifique se você está no diretório raiz do repositório do aplicativo.

  3. Para adicionar um Azure remoto ao repositório Git local, execute o comando a seguir. Substitua <deploymentLocalGitUrl> pela URL do Git remoto que você salvou na etapa Criar um aplicativo Web do Serviço de Aplicativo.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Para implantar o aplicativo executando um git push no Azure remoto, execute o comando a seguir. Quando o Git Credential Manager solicitar credenciais, insira as credenciais de implantação criadas na etapa Configurar um usuário de implantação.

    git push azure main
    

A implantação pode levar alguns minutos para ser concluída com êxito.

Teste seu aplicativo

Por fim, teste o aplicativo navegando até https://<app-name>.azurewebsites.net. Depois, adicione, exiba, atualize ou exclua itens do catálogo de produtos.

Captura de tela mostrando o aplicativo Web PHP do Catálogo de Produtos de exemplo.

Parabéns! Você implantou com êxito um aplicativo PHP de exemplo no Serviço de Aplicativo do Azure e integrou-o ao Banco de Dados do Azure para MySQL – Servidor Flexível no back-end.

Atualizar o aplicativo e reimplantar

Para atualizar o aplicativo do Azure, faça as alterações de código necessárias, confirme todas as alterações no Git e envie as alterações de código para o Azure.

git add .
git commit -m "Update Azure app"
git push azure main

Quando git push for concluído, navegue até o aplicativo do Azure ou atualize para testar a nova funcionalidade.

Limpar os recursos

Neste tutorial, você criou todos 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 rg-php-demo

Próximas etapas