Azure App Service proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático. En este tutorial de inicio rápido se explica cómo se implementa una aplicación PHP en Azure App Service en Windows.
Se crea la aplicación web con la CLI de Azure en Cloud Shell y se usa Git para implementar el código PHP de ejemplo en la aplicación web.
Estos pasos se pueden realizar en este caso con una máquina Mac, Windows o Linux. Una vez instalados los requisitos previos, tardará aproximadamente cinco minutos en completar los pasos.
Ejecute los siguientes comandos en una ventana de terminal. Se clonará la aplicación de ejemplo en el equipo local y se desplazará al directorio que contiene el código de ejemplo.
git clone https://github.com/Azure-Samples/php-docs-hello-world
cd php-docs-hello-world
Asegúrese de que la rama predeterminada sea main.
git branch -m main
Sugerencia
App Service no exige el cambio de nombre de rama. Sin embargo, dado que muchos repositorios cambian su rama predeterminada a main, en este inicio rápido también se muestra cómo implementar un repositorio desde main.
Ejecución de la aplicación de forma local
Ejecute la aplicación localmente para ver cómo debería ser si se implementara en Azure. Abra una ventana de terminal y use el comando php para iniciar el servidor web de PHP integrado.
php -S localhost:8080
Abra un explorador web y vaya a la aplicación de ejemplo en http://localhost:8080.
Verá el mensaje Hola mundo de la aplicación de ejemplo que aparece en la página.
En la ventana de terminal, presione Ctrl + C para salir del servidor web.
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción
Ejemplo o vínculo
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell.
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Configuración de un usuario de implementación
Se puede implementar FTP y Git local en una aplicación web de Azure mediante un usuario de implementación. Una vez configurado este usuario de implementación, podrá usarlo en todas las implementaciones de Azure. El nombre de usuario y la contraseña en el nivel de cuenta son diferentes de las credenciales de suscripción de Azure.
Para configurar el usuario de implementación, ejecute el comando az webapp deployment user set en Azure Cloud Shell. Reemplace <username> y <password> por un nombre de usuario y contraseña de implementación.
El nombre de usuario debe ser único dentro de Azure y no debe contener el símbolo "\@" para las inserciones de Git local.
La contraseña debe tener al menos ocho caracteres y dos de los tres elementos siguientes: letras, números y símbolos.
az webapp deployment user set --user-name <username> --password <password>
La salida JSON muestra la contraseña como null. Si se produce un error 'Conflict'. Details: 409, cambie el nombre de usuario. Si se produce un error 'Bad Request'. Details: 400, use una contraseña más segura.
Anote el nombre de usuario y la contraseña que se usarán para implementar las aplicaciones web.
Crear un grupo de recursos
Un grupo de recursos es un contenedor lógico en el que los recursos de Azure, como aplicaciones web, bases de datos y cuentas de almacenamiento, se implementen y administren. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.
En Cloud Shell, cree un grupo de recursos con el comando az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Oeste de Europa. Para ver todas las ubicaciones que se admiten en App Service en el nivel Gratis, ejecute el comando az appservice list-locations --sku FREE.
az group create --name myResourceGroup --location "West Europe"
Generalmente se crean el grupo de recursos y los recursos en una región cercana.
Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.
En Cloud Shell, cree una aplicación web en el plan de App Service myAppServicePlan con el comando az webapp create.
En el siguiente ejemplo, reemplace <app-name> por un nombre único global de aplicación (los caracteres válidos son a-z, 0-9 y -). El tiempo de ejecución se establece en PHP|7.4. Para ver todos los entornos en tiempo de ejecución admitidos, ejecute az webapp list-runtimes.
Cuando se haya creado la aplicación web, la CLI de Azure mostrará información similar a la del ejemplo siguiente:
Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git'
{
"availabilityState": "Normal",
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"cloningInfo": null,
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"defaultHostName": "<app-name>.azurewebsites.net",
"enabled": true,
< JSON data removed for brevity. >
}
Ha creado una nueva aplicación web vacía, con la implementación de Git habilitada.
Nota
La dirección URL del repositorio de 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, ya que la necesitará más adelante.
Vaya a la aplicación web recién creada. Reemplace <app-name> por el nombre de aplicación único creado en el paso anterior.
http://<app-name>.azurewebsites.net
Este es el aspecto que debería tener su nueva aplicación web:
Inserción en Azure desde Git
Puesto que va a implementar la rama main, debe establecer la rama de implementación predeterminada de la aplicación de App Service en main (consulte Cambiar la rama de implementación). En Cloud Shell, establezca el valor de la aplicación DEPLOYMENT_BRANCH con el comando az webapp config appsettings set.
az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
En la ventana del terminal local, agregue una instancia remota de Azure al repositorio de Git local. Reemplace <deploymentLocalGitUrl-from-create-step>> por la dirección URL del repositorio de Git remoto que guardó en Creación de una aplicación web.
Realice la insercion en la instancia remota de Azure para implementar la aplicación con el comando siguiente. Cuando el Administrador de credenciales de Git le solicite las credenciales, asegúrese de que especifica las que creó en Configuración de la implementación de Git local, no las que se usan para iniciar sesión en Azure Portal.
git push azure main
Este comando puede tardar unos minutos en ejecutarse. Durante la ejecución, muestra información similar a la del ejemplo siguiente:
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 352 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Updating branch 'main'.
remote: Updating submodules.
remote: Preparing deployment for commit id '25f18051e9'.
remote: Generating deployment script.
remote: Running deployment command...
remote: Handling Basic Web Site deployment.
remote: Kudu sync from: '/home/site/repository' to: '/home/site/wwwroot'
remote: Copying file: '.gitignore'
remote: Copying file: 'LICENSE'
remote: Copying file: 'README.md'
remote: Copying file: 'index.php'
remote: Ignoring: .git
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Deployment successful.
To https://<app-name>.scm.azurewebsites.net/<app-name>.git
cc39b1e..25f1805 main -> main
Navegación hasta la aplicación
Vaya a la aplicación implementada mediante el explorador web.
http://<app-name>.azurewebsites.net
El código de ejemplo de PHP se está ejecutando en una aplicación web de Azure App Service.
¡Enhorabuena! Ha implementado la primera aplicación PHP en App Service.
Actualización local y nueva implementación del código
Con un editor de texto local, abra el archivo index.php dentro de la aplicación PHP y realice un pequeño cambio en el texto dentro de la cadena situada junto a echo:
echo "Hello Azure!";
En la ventana del terminal local, confirme los cambios en Git e inserte los cambios de código en Azure.
git commit -am "updated output"
git push azure main
Una vez que la implementación haya finalizado, vuelva a la ventana del explorador que abrió en el paso Navegación hasta la aplicación y actualice la página.
Administración de la nueva aplicación de Azure
Vaya a Azure Portal para administrar la aplicación web que ha creado. Busque y seleccione App Services.
Seleccione el nombre de la aplicación de Azure.
Se mostrará la página de información general de la aplicación web. En ella, puede realizar tareas de administración básicas como examinar, detener, reiniciar y eliminar.
En el menú de la aplicación web se proporcionan distintas opciones para configurar la aplicación.
Limpieza de recursos
En los pasos anteriores, creó 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 myResourceGroup
Este comando puede tardar varios segundos en ejecutarse.
Azure App Service proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático. En esta guía de inicio rápido se explica cómo se implementa una aplicación de PHP en Azure App Service en Linux.
Estos pasos se pueden realizar en este caso con una máquina Mac, Windows o Linux. Una vez instalados los requisitos previos, tardará aproximadamente cinco minutos en completar los pasos.
Para completar este inicio rápido necesita instalar:
Puede crear la aplicación web con la CLI de Azure en Cloud Shell y usar Git para implementar el código PHP de ejemplo en la aplicación web.
En la ventana de terminal, ejecute los comandos siguientes para clonar la aplicación de ejemplo en el equipo local y desplazarse a la raíz del proyecto.
git clone https://github.com/Azure-Samples/php-docs-hello-world
cd php-docs-hello-world
Para ejecutar la aplicación localmente, use el comando php para iniciar el servidor web PHP integrado.
php -S localhost:8080
Vaya a la aplicación de ejemplo en http://localhost:8080, en un explorador web.
En la ventana de terminal, presione Ctrl + C para salir del servidor web.
En el explorador, vaya al repositorio que contiene el código de ejemplo.
En la esquina superior derecha, seleccione Bifurcar.
En la pantalla Crear una nueva bifurcación, confirme los campos Propietario y Nombre del repositorio. Seleccione Crear bifurcación.
Nota
Esto le llevará a la nueva bifurcación. La dirección URL de la bifurcación se parecerá a esta: https://github.com/YOUR_GITHUB_ACCOUNT_NAME/php-docs-hello-world
2 - Implementación del código de la aplicación en Azure
La CLI de Azure dispone de un comando az webapp up que crea los recursos necesarios e implementa la aplicación en un solo paso.
En el terminal, implemente el código en la carpeta local mediante el comando az webapp up:
az webapp up --runtime "PHP:8.2" --os-type=linux
Si no se reconoce el comando az, asegúrese de tener instalada la CLI de Azure.
El argumento --runtime "PHP:8.2" crea la aplicación web con PHP versión 8.2.
El argumento --os-type=linux crea la aplicación web en App Service en Linux.
Opcionalmente, puede especificar un nombre con el argumento --name <app-name>. Si no proporciona un nombre, se genera automáticamente.
Opcionalmente, incluya el argumento --location <location-name>, donde <location_name> es una región de Azure disponible. Puede recuperar una lista de las regiones permitidas para su cuenta de Azure mediante la ejecución del comando az account list-locations.
Este comando puede tardar unos minutos en completarse. Mientras se ejecuta, proporciona mensajes sobre la creación del grupo de recursos, el plan de App Service y el recurso de la aplicación, la configuración del registro y la implementación del archivo ZIP. A continuación, se muestra el mensaje "Puede iniciar la aplicación en http://<nombre_de_la_aplicación>.azurewebsites.net", que es la dirección URL de la aplicación en Azure.
The webapp '<app-name>' doesn't exist
Creating Resource group '<group-name>' ...
Resource group creation complete
Creating AppServicePlan '<app-service-plan-name>' ...
Creating webapp '<app-name>' ...
Configuring default logging for the app, if not already enabled
Creating zip with contents of dir /home/msangapu/myPhpApp ...
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
You can launch the app at http://<app-name>.azurewebsites.net
{
"URL": "http://<app-name>.azurewebsites.net",
"appserviceplan": "<app-service-plan-name>",
"location": "centralus",
"name": "<app-name>",
"os": "linux",
"resourcegroup": "<group-name>",
"runtime_version": "php|8.2",
"runtime_version_detected": "0.0",
"sku": "FREE",
"src_path": "//home//msangapu//myPhpApp"
}
Nota
El comando az webapp up realiza las acciones siguientes:
Almacene los parámetros localmente en el archivo .azure/config para que no tenga que especificarlos de nuevo al implementar posteriormente con az webapp up u otros comandos az webapp desde la carpeta del proyecto. Los valores almacenados en caché se usan automáticamente de forma predeterminada.
Vaya a la aplicación implementada mediante el explorador web en la dirección URL http://<app-name>.azurewebsites.net.
Inicie sesión en Azure Portal.
En la parte superior del portal, escriba app services en el cuadro de búsqueda. En Servicios, seleccione App Services.
En la página App Services, seleccione + Crear.
En la pestaña Básica:
En Grupo de recursos, seleccione Crear nuevo. Escriba myResourceGroup para el nombre.
En Nombre, escriba un nombre único global para la aplicación web.
En Publicar, seleccione Código.
En Pila del runtime seleccione PHP 8.2.
En Sistema operativo, seleccione Linux.
En Región, seleccione una región de Azure cercana.
En Plan de App Service, cree un plan de App Service denominado myAppServicePlan.
En Plan de precios, seleccione Gratis F1.
Seleccione la pestaña Implementación en la parte superior de la página.
En Configuración de Acciones de GitHub, establezca Implementación continua en Habilitar.
En Detalles de Acciones de GitHub, autentíquese con su cuenta de GitHub y seleccione las siguientes opciones:
En Organización, seleccione la organización en la que bifurcaron el proyecto de demostración.
En Repositorio, seleccione el proyecto php-docs-hello-world.
Con un editor de texto local, abra el archivo index.php dentro de la aplicación PHP y realice un pequeño cambio en el texto dentro de la cadena situada junto a echo:
echo "Hello Azure!";
Guarde los cambios y vuelva a implementar la aplicación con el comando az webapp up de nuevo con estos argumentos:
az webapp up --runtime "PHP:8.2" --os-type=linux
Una vez completada la implementación, vuelva a la ventana del explorador que abrió en el paso Navegación hasta la aplicación y actualice la página.
Vaya a la bifurcación de GitHub de php-docs-hello-world.
En la página del repositorio, presione . para iniciar Visual Studio Code dentro del explorador.
Nota
La dirección URL cambiará de GitHub.com a GitHub.dev. Esta característica solo funciona con repositorios que tienen archivos. No funciona en repositorios vacíos.
Edite index.php para que muestre "Hola Azure" en lugar de "Hola mundo"
<?php
echo "Hello Azure!";
?>
En el menú Control de código fuente, seleccione el botón Almacenar cambios provisionalmente para almacenar provisionalmente el cambio.
Escriba un mensaje de confirmación como Hello Azure. A continuación, seleccione Confirmar e insertar.
Una vez completada la implementación, vuelva a la ventana del explorador que abrió en el paso Navegación hasta la aplicación y actualice la página.
4 - Administración de la nueva aplicación de Azure
Vaya a Azure Portal para administrar la aplicación web que ha creado. Busque y seleccione App Services.
Seleccione el nombre de la aplicación de Azure.
Se debe mostrar la página de información general de la aplicación web. En ella, puede realizar tareas de administración básicas como examinar, detener, reiniciar y eliminar.
En el menú de la aplicación web se proporcionan distintas opciones para configurar la aplicación.
5 - Limpieza de los recursos
Cuanda haya terminado con la aplicación de muestra, puede quitar todos los recursos de la aplicación de Azure. Ayuda a evitar cargos adicionales y mantiene la suscripción de Azure desordenada. Al quitar el grupo de recursos también se quitan todos los recursos que haya dentro; es la manera más rápida de quitar todos los recursos de Azure de la aplicación.
Elimine el grupo de recursos con el comando az group delete.
az group delete --name myResourceGroup
Este comando tarda un minuto en ejecutarse.
En la página Información general de App Service, seleccione el grupo de recursos que ha creado.
En la página del grupo de recursos, seleccione Eliminar grupo de recursos. Confirme el nombre del grupo de recursos para terminar de eliminar los recursos.
En esta ruta de aprendizaje, familiarícese con el uso de Azure App Service para crear e implementar el sitio web sin servidores subyacentes, recursos de almacenamiento o de red.
Cree soluciones de un extremo a otro en Microsoft Azure para crear Azure Functions, implementar y administrar aplicaciones web, desarrollar soluciones que usen Azure Storage, etc.