Tutorial: Implementación de una aplicación PHP (Laravel) y el Servidor flexible de Azure Database for MySQL en Azure App Service
Azure App Service proporciona un servicio de hospedaje web muy escalable y con aplicación automática de revisiones con el sistema operativo Linux.
En este tutorial se muestra cómo compilar e implementar una aplicación PHP de ejemplo en Azure App Service e integrarla con el Servidor flexible de Azure Database for MySQL en el back-end. Aquí usará la conectividad de acceso público (direcciones IP permitidas) en la instancia del Servidor flexible de Azure Database for MySQL para conectarse a la aplicación de App Service.
En este tutorial, aprenderá a:
- Creación de una instancia del servidor flexible de Azure Database for MySQL
- Conexión de una aplicación PHP a la instancia del Servidor flexible de Azure Database for MySQL
- Implementar la aplicación en Azure App Service
- Actualización de la aplicación y nueva implementación
Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar. Actualmente, con una cuenta gratuita de Azure, puede probar el Servidor flexible de Azure Database for MySQL gratis durante 12 meses. Para más información, consulte Uso de una cuenta gratuita de Azure para probar Azure Database for MySQL: servidor flexible de forma gratuita.
Requisitos previos
- Instale Git.
- La Interfaz de la línea de comandos (CLI) de Azure.
- Una suscripción a Azure Si todavía no una, cree una cuenta gratuita de Azure antes de empezar. Actualmente, con una cuenta gratuita de Azure, puede probar el Servidor flexible de Azure Database for MySQL gratis durante 12 meses. Para más información, consulte Uso de una cuenta gratuita de Azure para probar Azure Database for MySQL: servidor flexible de forma gratuita.
Creación de un Servidor flexible de Azure Database for MySQL
En primer lugar, aprovisione una instancia del Servidor flexible de Azure Database for MySQL con conectividad de acceso público, configure reglas de firewall para permitir que la aplicación acceda al servidor y cree una base de datos de producción.
Para obtener información sobre cómo usar la conectividad de acceso privado en su lugar y aislar los recursos de la aplicación y la base de datos en una red virtual, consulte Tutorial: Conectar una aplicación web de App Services al Servidor flexible de Azure Database for MySQL en una red virtual.
Crear un grupo de recursos
Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure. Se creará un grupo de recursos, rg-mysqlaksdemo, mediante el comando az group create en la ubicación centralus.
Abra el símbolo del sistema.
Inicie sesión en la cuenta de Azure.
az login
Elija la suscripción de Azure.
az account set -s <your-subscription-ID>
Cree el grupo de recursos.
az group create --name rg-php-demo --location centralus
Creación de una instancia del servidor flexible de Azure Database for MySQL
Para crear una instancia del Servidor flexible de Azure Database for MySQL con conectividad de acceso público, ejecute el siguiente comando az flexible-server create. Reemplace los valores de nombre del servidor, nombre de usuario administrador y contraseña.
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>
Ahora ha creado una instancia del Servidor flexible de Azure Database for MySQL en la región CentralUS. El servidor se basa en la SKU de proceso B1MS ampliable, con almacenamiento de 32 GB, un período de retención de copia de seguridad de 7 días y configurado con conectividad de acceso público.
A continuación, para crear una regla de firewall para la instancia del Servidor flexible de Azure Database for MySQL para permitir conexiones de cliente, ejecute el siguiente comando. Cuando la dirección IP inicial y la dirección IP final se establecen en 0.0.0.0,0, solo otros recursos de Azure (como las aplicaciones de App Services, las máquinas virtuales, el clúster de AKS, etc.) pueden conectarse a la instancia del Servidor flexible de Azure Database for 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 crear una nueva base de datos de producción del Servidor flexible de Azure Database for MySQL sampledb para usarla con la aplicación PHP, ejecute el siguiente comando:
az mysql flexible-server db create \ --resource-group rg-php-demo \ --server-name <your-mysql-server-name> \ --database-name sampledb
Compilación de la aplicación
Para este ejercicio, usaremos una aplicación PHP de ejemplo que muestra y administra un catálogo de productos. La aplicación proporciona funciones básicas, como ver los productos en el catálogo, agregar nuevos productos, actualizar los precios de los artículos existentes y quitar productos.
Para obtener más información sobre el código de la aplicación, continúe y explore la aplicación en el repositorio de GitHub. Para aprender a conectar una aplicación PHP a Azure Database for MySQL con servidor flexible, consulte Uso de PHP con Azure Database for MySQL: servidor flexible.
En este tutorial, clonaremos directamente la aplicación codificada de ejemplo y descubriremos cómo implementarla en Azure App Service.
Para clonar el repositorio de aplicaciones de ejemplo y cambiar a la raíz del repositorio, ejecute los comandos siguientes:
git clone https://github.com/Azure-Samples/php-mysql-app-service.git cd php-mysql-app-service
Ejecute el comando siguiente para asegurarse de que la rama predeterminada es
main
.git branch -m main
Crear y configurar una aplicación web de Azure App Service
En Azure App Service (Web Apps, API Apps o Mobile Apps), una aplicación siempre se ejecuta en un plan de App Service. Un plan de App Service define un conjunto de recursos de proceso para que una aplicación web se ejecute. En este paso, crearemos un plan de Azure App Service y una aplicación web de App Service dentro de ella, que hospedará la aplicación de ejemplo.
Para crear un plan de App Service en el plan de tarifa Gratis de Windows, ejecute el comando siguiente:
az appservice plan create --name plan-php-demo \ --resource-group rg-php-demo \ --location centralus \ --sku FREE --is-linux
Si quiere implementar una aplicación en una aplicación web de Azure mediante métodos de implementación como FTP o Git local, debe configurar un usuario de implementación con credenciales de nombre de usuario y contraseña. Después de configurar el usuario de implementación, podrá aprovecharlo para todas las implementaciones de Azure App Service.
az webapp deployment user set \ --user-name <your-deployment-username> \ --password <your-deployment-password>
Para crear una aplicación web de App Service con el tiempo de ejecución de PHP 8.0 y configurar la opción de implementación de Git local a fin de implementar la aplicación desde un repositorio de Git en el equipo local, ejecute el comando siguiente. Reemplace
<your-app-name>
por un nombre de aplicación único global (los caracteres válidos son a-z, 0-9 y -).az webapp create \ --resource-group rg-php-demo \ --plan plan-php-demo \ --name <your-app-name> \ --runtime "PHP|8.0" \ --deployment-local-git
Importante
En la salida de la CLI de Azure, la dirección URL del Git remoto se muestra en la propiedad deploymentLocalGitUrl, con el formato
https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Guarde esta dirección URL porque la necesitará más adelante.A continuación, configuraremos las opciones de conexión de base de datos del Servidor flexible de Azure Database for MySQL en la aplicación web.
El archivo
config.php
de la aplicación PHP de ejemplo recupera la información de conexión de la base de datos (nombre del servidor, nombre de base de datos, nombre de servidor y contraseña) de variables de entorno mediante la funcióngetenv()
. En App Service, para establecer variables de entorno como Configuración de la aplicación (appsettings), ejecute el siguiente 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, puede usar el Conector de servicio para establecer una conexión entre la aplicación de App Service y la instancia del Servidor flexible de Azure Database for MySQL. Para más información, consulte Integración del Servidor flexible de Azure Database for MySQL con el Conector de servicio.
Implementación de la aplicación mediante Git local
Ahora, implementaremos la aplicación PHP de ejemplo en Azure App Service mediante la opción de implementación de Git local.
Puesto que va a implementar la rama principal, debe establecer la rama de implementación predeterminada de la aplicación de App Service en principal. Para establecer DEPLOYMENT_BRANCH en Configuración de la aplicación, ejecute el comando siguiente:
az webapp config appsettings set \ --name <your-app-name> \ --resource-group rg-php-demo \ --settings DEPLOYMENT_BRANCH='main'
Compruebe que se encuentra en el directorio raíz del repositorio de la aplicación.
Para agregar una instancia remota de Azure al repositorio de Git local, ejecute el comando siguiente. Reemplace
<deploymentLocalGitUrl>
por la dirección URL del repositorio remoto de Git que ha guardado en el paso Crear una aplicación web de App Service.git remote add azure <deploymentLocalGitUrl>
Para implementar la aplicación realizando un elemento
git push
en la instancia remota de Azure, ejecute el comando siguiente. Cuando el administrador de credenciales de Git le solicite las credenciales, utilice las de implementación que ha creado en el paso Configurar un usuario de implementación.git push azure main
La implementación puede tardar unos minutos en completarse.
Prueba de la aplicación
Por último, pruebe la aplicación; para ello, vaya a https://<app-name>.azurewebsites.net
y luego agregue, vea, actualice o elimine elementos del catálogo de productos.
Felicidades. Ha implementado correctamente una aplicación PHP de ejemplo en Azure App Service y la ha integrado con el Servidor flexible de Azure Database for MySQL en el back-end.
Actualización de la aplicación y nueva implementación
Para actualizar la aplicación de Azure, realice los cambios de código necesarios, confirme todos los cambios en Git y, a continuación, inserte los cambios de código en Azure.
git add .
git commit -m "Update Azure app"
git push azure main
Una vez que git push
esté completo, vaya a la aplicación de Azure y pruebe la nueva funcionalidad.
Limpieza de recursos
En este tutorial, ha creado todos los recursos de Azure en un grupo de recursos. Si prevé que no necesitará estos recursos en el futuro, elimine el grupo de recursos ejecutando el siguiente comando en Cloud Shell:
az group delete --name rg-php-demo