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
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 compilar e implantar um aplicativo PHP de exemplo no Serviço de Aplicativo do Azure e integrá-lo ao Servidor Flexível do Banco de Dados do Azure para MySQL no back-end. Aqui você usará a conectividade de acesso público (endereços de IP permitidos) na instância do Servidor Flexível do Banco de Dados do Azure para MySQL para se conectar ao 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 mais informações, consulte Usar uma conta gratuita do Azure para experimentar o Banco de Dados do Azure para MySQL – servidor flexível gratuito.
Pré-requisitos
- Instalar o Git.
- ACLI (interface de linha de comando) do Azure.
- Uma assinatura do Azure. 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 mais informações, consulte Usar uma conta gratuita do Azure para experimentar o Banco de Dados do Azure para MySQL – servidor flexível gratuito.
Criar um Banco de Dados do Azure para MySQL – Servidor Flexível
Primeiro, provisione uma instância de servidor flexível do Banco de Dados do Azure para MySQL com conectividade de acesso público, configure 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, consulte Tutorial: Conectar um aplicativo Web dos Serviços de Aplicativos ao 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.
Abra o prompt de comando.
Entre em sua conta do Azure.
az login
Escolha a sua assinatura do Azure.
az account set -s <your-subscription-ID>
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
Para criar uma instância do Servidor Flexível do Banco de Dados do Azure para MySQL com conectividade de acesso público, execute o seguinte comando az flexible-server create. 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 na região do Central dos EUA. 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.
Em seguida, para criar uma regra de firewall para sua instância do Servidor Flexível do Banco de Dados do Azure para MySQL para permitir conexões de cliente, execute o comando a seguir. Quando o IP inicial e o IP final forem 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 Servidor Flexível do Banco de Dados do Azure para MySQL.
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
Para criar um novo banco de dados de produção do Servidor Flexível do Banco de Dados do Azure para MySQL sampledb para usar com o aplicativo PHP, execute o comando a seguir:
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 servidor flexível do Banco de Dados do Azure para MySQL, consulte Usar o PHP com o Banco de Dados do Azure para MySQL - Servidor Flexível.
Neste tutorial, clonaremos diretamente o aplicativo de exemplo codificado e aprenderemos a implantá-lo no Serviço de Aplicativo do Azure.
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
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.
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
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>
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.Em seguida, definiremos as configurações de conexões de banco de dados do Servidor Flexível do Banco de Dados do Azure para MySQL 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çãogetenv()
. 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.
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'
Verifique se você está no diretório raiz do repositório do aplicativo.
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>
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.
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.
Parabéns! Você implantou com êxito um aplicativo PHP de exemplo no Serviço de Aplicativo do Azure e o integrou ao Servidor Flexível do Banco de Dados do Azure para MySQL 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