Share via


Tutorial: Implementación de una aplicación PHP (Laravel) y el Servidor flexible de Azure Database for MySQL en Azure App Service

SE APLICA A: Azure Database for MySQL: Servidor flexible

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, vea Probar el Servidor flexible de Azure Database for MySQL de forma gratuita.

Requisitos previos

Creación de un Servidor flexible de Azure Database for MySQL

En primer lugar, aprovisionaremos una instancia del Servidor flexible de Azure Database for MySQL con conectividad de acceso público, configuraremos reglas de firewall para permitir que la aplicación acceda al servidor y cree una base de datos de producción.

Para aprender a usar la conectividad de acceso privado en su lugar y aislar los recursos de aplicaciones y bases de datos en una red virtual, consulte Tutorial: Conexión de una aplicación web de App Services a una instancia del 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.

  1. Abra el símbolo del sistema.
  2. Inicie sesión en la cuenta de Azure.
    az login
    
  3. Elija la suscripción de Azure.
    az account set -s <your-subscription-ID>
    
  4. 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

  1. 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.

  2. 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
    
  3. 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. Si quiere más detalles sobre cómo conectar una aplicación PHP al Servidor flexible de Azure Database for MySQL, consulte Inicio rápido: Conectar mediante PHP.

En este tutorial, clonaremos directamente la aplicación codificada de ejemplo y descubriremos cómo implementarla en Azure App Service.

  1. 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
    
  2. 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.

  1. 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
    
  2. 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>
    
  3. 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.

  4. 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ón getenv(). 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.

  1. 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'
    
  2. Compruebe que se encuentra en el directorio raíz del repositorio de la aplicación.

  3. 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>
    
  4. 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.

Screenshot showing the sample Product Catalog PHP Web App.

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

Pasos siguientes