Ejercicio: Implementación de una aplicación php y MySQL: servidor flexible en Azure App Service
En esta unidad, compilará e implementará una aplicación PHP de ejemplo para Azure App Service y la integrará con Azure Database for MySQL: servidor flexible en el back-end.
PASO 1: Crear un servidor flexible para Azure Database for MySQL
En primer lugar, aprovisione un servidor flexible de 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.
Use Azure Portal para recorrer la experiencia de creación de MySQL: servidor flexible.
Inicie sesión en Azure Portal con la misma cuenta que ha usado para activar el espacio aislado.
En el cuadro de búsqueda de la parte superior de la página, escriba MySQL y, a continuación, seleccione Servidores flexibles de Azure Database for MySQL.
En la página Servidores flexibles de Azure Database for MySQL, seleccione + Crear y Servidor flexible.
En la página Servidor flexible, en la pestaña Aspectos básicos, escriba la información de la tabla siguiente.
Configuración Valor sugerido Subscription Suscripción de Concierge Grupo de recursos En la lista desplegable, seleccione el grupo de recursos que empieza por learn-. Nombre de servidor Escriba un nombre único global que identifique el servidor flexible. Versión de MySQL 8.0 Tipo de carga de trabajo Seleccione For development or hobby projects (Para proyectos de desarrollo o aficiones) Nombre de usuario administrador Escriba mysqladmin. No use azure_superusuario, admin, administrador, raíz, invitado o público. Contraseña Escriba Passw0rd123. La contraseña debe contener entre 8 y 128 caracteres e incluir caracteres de tres categorías: Letras en mayúsculas del alfabeto inglés, letras en minúscula del alfabeto inglés, números (del 0 al 9) y caracteres no alfanuméricos (por ejemplo, !, $, #, %). Mantenga los valores predeterminados en las demás opciones de configuración.
En la pestaña Aspectos básicos, en Proceso y almacenamiento, seleccione Configurar servidor.
En la página Proceso y almacenamiento, configure las siguientes opciones:
- Proceso
- Seleccione el nivel de proceso Ampliable.
- En la lista desplegable Tamaño de proceso, seleccione Standard_B1s (1 núcleo virtual, 1 GiB de memoria, 400 IOPS máx.).
- Storage
- Compruebe que el tamaño de almacenamiento (en GB) está establecido en 20.
- Seleccione IOPS aprovisionado previamente y deje el valor establecido en 360.
- Compruebe que la casilla Crecimiento automático de almacenamiento esté activada.
- Alta disponibilidad
- Compruebe que la casilla Habilitar alta disponibilidad no esté activada.
- Copias de seguridad
- Asegúrese de que el Período de retención de copia de seguridad (en días) esté establecido en 7.
- Compruebe que la casilla Recuperar de desastres o interrupciones regionales no esté activada.
- Proceso
Seleccione Guardar y, a continuación, vaya a la pestaña Redes.
En la pestaña Redes, seleccione el método de conectividad Acceso público (direcciones IP permitidas), active Permitir el acceso público a este recurso a través de Internet con una dirección IP pública y active Permitir el acceso público desde cualquier servicio de Azure en Azure a este servidor, tal y como se muestra en el siguiente recorte de pantalla.
Seleccione Revisar y crear para revisar la configuración del servidor flexible MySQL.
Seleccione Crear para realizar el aprovisionamiento del servidor. El aprovisionamiento puede tardar hasta 10 minutos.
Una vez finalizada la implementación, seleccione Ir al recurso para ver la página información general del servidor flexible de Azure Database for MySQL.
En el resto de este ejercicio, ejecute los comandos mediante Azure Cloud Shell, que aparece a la derecha de esta ventana.
Para crear una base de datos de producción de MySQL sampledb a fin de usarla con la aplicación PHP, ejecute el comando siguiente:
az mysql flexible-server db create \
--resource-group <rgn>[Sandbox resource group name]</rgn> \
--server-name <your-mysql-server-name> \
--database-name sampledb
PASO 2: Clonar la aplicación
En este ejercicio, use una aplicación PHP de ejemplo que muestra y administre 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.
Clone directamente la aplicación codificada y descubra cómo implementarla en Azure App Service.
Nota:
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 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
PASO 3: 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, cree 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-learn \ --resource-group <rgn>[Sandbox resource group name]</rgn> \ --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.
Nota: 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 <rgn>[Sandbox resource group name]</rgn> \ --plan plan-learn \ --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 formatohttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Guarde esta dirección URL porque la necesitará más adelante.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 <rgn>[Sandbox resource group name]</rgn> \ --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"
Este comando anterior configura las opciones de conexión de base de datos de servidor flexible de MySQL en la aplicación web.
PASO 4: Implementación de la aplicación mediante Git local
Ahora, implemente 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 <rgn>[Sandbox resource group name]</rgn> \ --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.
Nota: 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.
Paso 5: Prueba de la aplicación
Por último, pruebe la aplicación; para ello, vaya a https://<app-name>.azurewebsites.net
y agregue, vea, actualice o elimine elementos del catálogo de productos.
Felicidades. Ha implementado correctamente una aplicación PHP de ejemplo para Azure App Service y la ha integrado con Azure Database for MySQL: servidor flexible en el back-end.