Tutorial: Criar uma aplicação PHP e MySQL no Serviço de Aplicações do Azure
Serviço de Aplicações do Azure fornece um serviço de alojamento Na Web altamente dimensionável e com correção automática com o sistema operativo Linux. Este tutorial mostra como criar uma aplicação PHP segura no Serviço de Aplicações do Azure que está ligada a uma base de dados MySQL (com Base de Dados do Azure para MySQL servidor flexível). Quando tiver terminado, terá uma aplicação Laravel em execução no Serviço de Aplicações do Azure no Linux.
Neste tutorial, ficará a saber como:
- Criar uma aplicação PHP e MySQL segura por predefinição no Azure
- Configurar segredos de ligação ao MySQL com as definições da aplicação
- Implementar o código da aplicação com GitHub Actions
- Atualizar e reimplementar a aplicação
- Executar migrações de base de dados de forma segura
- Transmitir os registos de diagnóstico em fluxo a partir do Azure
- Gerir a aplicação no portal do Azure
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Aplicação de exemplo
Para acompanhar este tutorial, clone ou transfira a aplicação de exemplo a partir do repositório:
git clone https://github.com/Azure-Samples/laravel-tasks.git
Se quiser executar a aplicação localmente, faça o seguinte:
Em .env, configure as definições da base de dados (como
DB_DATABASE
,DB_USERNAME
eDB_PASSWORD
) com as definições na base de dados MySQL local. Precisa de um servidor MySQL local para executar este exemplo.Na raiz do repositório, inicie o Laravel com os seguintes comandos:
composer install php artisan migrate php artisan key:generate php artisan serve
1 - Criar recursos Serviço de Aplicações e MySQL
Neste passo, vai criar os recursos do Azure. Os passos utilizados neste tutorial criam uma configuração Serviço de Aplicações e Base de Dados do Azure para MySQL segura por predefinição. Para o processo de criação, irá especificar:
- O Nome da aplicação Web. É o nome utilizado como parte do nome DNS da sua aplicação Web sob a forma de
https://<app-name>.azurewebsites.net
. - O Runtime da aplicação. É onde seleciona a versão do PHP a utilizar para a sua aplicação.
- O Grupo de Recursos da aplicação. Um grupo de recursos permite-lhe agrupar (num contentor lógico) todos os recursos do Azure necessários para a aplicação.
Inicie sessão no portal do Azure e siga estes passos para criar os seus recursos de Serviço de Aplicações do Azure.
Instruções | Captura de ecrã |
---|---|
No portal do Azure:
|
![]() |
Na página Criar Aplicação Web + Base de Dados , preencha o formulário da seguinte forma.
|
![]() |
A implementação demora alguns minutos a concluir e cria os seguintes recursos:
|
![]() |
2 - Configurar a conectividade da base de dados
O assistente de criação gerou automaticamente uma cadeia de ligação para a base de dados, mas ainda não está num formato utilizável para o seu código. Neste passo, vai criar definições de aplicação com o formato de que a sua aplicação precisa.
Instruções | Captura de ecrã |
---|---|
Na página Serviço de Aplicações, no menu esquerdo, selecione Configuração. | ![]() |
No separador Definições da aplicação da página Configuração , crie uma DB_DATABASE definição:
|
![]() |
Novamente no separador Definições da aplicação:
|
![]() |
Crie as seguintes definições adicionais da aplicação ao seguir os mesmos passos para criar uma definição de aplicação.
|
![]() |
3 - Implementar código de exemplo
Neste passo, irá configurar a implementação do GitHub com GitHub Actions. É apenas uma das muitas formas de implementar no Serviço de Aplicações, mas também uma excelente forma de ter uma integração contínua no seu processo de implementação. Por predefinição, todos os git push
repositórios do GitHub iniciarão a ação de compilação e implementação. Irá efetuar algumas alterações à sua base de código com o Visual Studio Code diretamente no browser e, em seguida, permitir que GitHub Actions implemente automaticamente.
Instruções | Captura de ecrã |
---|---|
Numa nova janela do browser:
|
![]() |
Na página do GitHub, abra o Visual Studio Code no browser ao premir a . tecla. |
![]() |
No Visual Studio Code no browser, abra config/database.php no explorador. mysql Na ligação, veja que as definições da aplicação que criou anteriormente para a ligação MySQL já são utilizadas (DB_HOST , , DB_DATABASE DB_USERNAME , DB_PASSWORD , MYSQL_ATTR_SSL_CA ). |
![]() |
Novamente na página Serviço de Aplicações, no menu esquerdo, selecione Centro de Implementação. | ![]() |
Na página Centro de Implementação:
.github/workflows diretório. |
![]() |
Na página Centro de Implementação:
|
![]() |
Aguarde que a execução seja concluída. Demora cerca de 15 minutos.
Dica A ação do GitHub é definida pelo ficheiro no seu repositório do GitHub, em .github/workflow. Pode torná-lo mais rápido ao personalizar o ficheiro. |
![]() |
4 - Gerar esquema de base de dados
O assistente de criação coloca o servidor da base de dados MySQL atrás de um ponto final privado, pelo que só está acessível a partir da rede virtual. Uma vez que a aplicação Serviço de Aplicações já está integrada na rede virtual, a forma mais fácil de executar migrações de bases de dados com a base de dados é diretamente a partir do contentor Serviço de Aplicações.
Instruções | Captura de ecrã |
---|---|
Na página Serviço de Aplicações:
https://<app-name>.scm.azurewebsites.net/webssh/host . |
![]() |
No terminal SSH:
|
![]() |
5 - Alterar a raiz do site
O ciclo de vida da aplicação Laravel começa no diretório /público. O contentor PHP 8.0 predefinido para Serviço de Aplicações utiliza o Nginx, que começa no diretório de raiz da aplicação. Para alterar a raiz do site, tem de alterar o ficheiro de configuração Nginx no contentor PHP 8.0 (/etc/nginx/sites-disponível/predefinição). Para sua conveniência, o repositório de exemplo contém um ficheiro de configuração personalizado chamado predefinição. Conforme indicado anteriormente, não quer substituir este ficheiro com a shell SSH, porque as alterações serão perdidas após o reinício da aplicação.
6 - Navegar para a aplicação
7 - Transmitir registos de diagnóstico
Limpar os recursos
Quando terminar, pode eliminar todos os recursos da sua subscrição do Azure ao eliminar o grupo de recursos.
Perguntas mais frequentes
- Quanto custa esta configuração?
- Como devo proceder para ligar à base de dados MySQL protegida por trás da rede virtual com outras ferramentas?
- Como funciona o desenvolvimento de aplicações locais com GitHub Actions?
- Porque é que a implementação do GitHub Actions é tão lenta?
Quanto custa esta configuração?
Os preços dos recursos de criação são os seguintes:
- O plano Serviço de Aplicações é criado no escalão Premium V2 e pode ser aumentado ou reduzido verticalmente. Veja Serviço de Aplicações preços.
- O servidor flexível MySQL é criado na camada B1ms e pode ser aumentado ou reduzido verticalmente. Com uma conta gratuita do Azure, o escalão B1ms é gratuito durante 12 meses, até aos limites mensais. Veja Base de Dados do Azure para MySQL preços.
- A rede virtual não incorre num custo, a menos que configure funcionalidades adicionais, como o peering. Veja Preços do Azure Rede Virtual.
- A zona DNS privada incorre numa pequena carga. Veja Preços do DNS do Azure.
Como devo proceder para ligar à base de dados MySQL protegida por trás da rede virtual com outras ferramentas?
- Para obter acesso básico a partir de uma ferramenta de linha de commmand, pode executar
mysql
a partir do terminal SSH da aplicação. - Para se ligar a partir de uma ferramenta de ambiente de trabalho como o MySQL Workbench, o computador tem de estar dentro da rede virtual. Por exemplo, pode ser uma VM do Azure ligada a uma das sub-redes ou uma máquina numa rede no local que tenha uma ligação VPN site a site com a rede virtual do Azure.
- Também pode integrar o Azure Cloud Shell na rede virtual.
Como funciona o desenvolvimento de aplicações locais com GitHub Actions?
Veja o ficheiro de fluxo de trabalho gerado automaticamente a partir de Serviço de Aplicações como exemplo, cada git push
um inicia uma nova compilação e execução de implementação. A partir de um clone local do repositório do GitHub, faz com que as atualizações pretendidas o enviem para o GitHub. Por exemplo:
git add .
git commit -m "<some-message>"
git push origin main
Porque é que a implementação do GitHub Actions é tão lenta?
O ficheiro de fluxo de trabalho gerado automaticamente a partir de Serviço de Aplicações define build-then-deploy, execução de dois trabalhos. Uma vez que cada tarefa é executada no seu próprio ambiente limpo, o ficheiro de fluxo de trabalho garante que a deploy
tarefa tem acesso aos ficheiros a build
partir da tarefa:
- No final da
build
tarefa, carregue ficheiros como artefactos. - No início da
deploy
tarefa, transfira os artefactos.
A maior parte do tempo despendido pelo processo de dois trabalhos é gasto a carregar e transferir artefactos. Se quiser, pode simplificar o ficheiro de fluxo de trabalho ao combinar as duas tarefas numa só, o que elimina a necessidade dos passos de carregamento e transferência.
Passos seguintes
Neste tutorial, ficou a saber como:
- Criar uma aplicação PHP e MySQL segura por predefinição no Azure
- Configurar segredos de ligação ao MySQL com as definições da aplicação
- Implementar o código da aplicação com GitHub Actions
- Atualizar e reimplementar a aplicação
- Executar migrações de base de dados de forma segura
- Transmitir os registos de diagnóstico em fluxo a partir do Azure
- Gerir a aplicação no portal do Azure
Avance para o próximo tutorial para saber como proteger a sua aplicação com um domínio e certificado personalizados.
Em alternativa, consulte outros recursos: