Creación de una aplicación web PHP en Azure App ServiceCreate a PHP web app in Azure App Service

Azure App Service proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático.Azure App Service provides a highly scalable, self-patching web hosting service. En este tutorial de inicio rápido se explica cómo se implementa una aplicación PHP en Azure App Service en Windows.This quickstart tutorial shows how to deploy a PHP app to Azure App Service on Windows.

Azure App Service proporciona un servicio de hospedaje web muy escalable y con aplicación de revisiones de un modo automático.Azure App Service provides a highly scalable, self-patching web hosting service. 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.This quickstart tutorial shows how to deploy a PHP app to Azure App Service on Linux.

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.You create the web app using the Azure CLI in Cloud Shell, and you use Git to deploy sample PHP code to the web app.

Aplicación de ejemplo que se ejecuta en Azure

Estos pasos se pueden realizar en este caso con una máquina Mac, Windows o Linux.You can follow the steps here using a Mac, Windows, or Linux machine. Una vez instalados los requisitos previos, tardará aproximadamente cinco minutos en completar los pasos.Once the prerequisites are installed, it takes about five minutes to complete the steps.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

PrerrequisitosPrerequisites

Para completar esta guía de inicio rápido:To complete this quickstart:

Descarga local del códigoDownload the sample locally

Ejecute los siguientes comandos en una ventana de terminal.In a terminal window, run the following commands. Con ello, se clonará la aplicación de ejemplo en el equipo local y se desplazará al directorio que contiene el código de ejemplo.This will clone the sample application to your local machine, and navigate to the directory containing the sample code.

git clone https://github.com/Azure-Samples/php-docs-hello-world
cd php-docs-hello-world

Ejecución de la aplicación de forma localRun the app locally

Ejecute la aplicación localmente para ver cómo debería ser si se implementara en Azure.Run the application locally so that you see how it should look when you deploy it to Azure. Abra una ventana de terminal y use el comando php para iniciar el servidor web de PHP integrado.Open a terminal window and use the php command to launch the built-in PHP web server.

php -S localhost:8080

Abra un explorador web y vaya a la aplicación de ejemplo en http://localhost:8080.Open a web browser, and navigate to the sample app at http://localhost:8080.

Verá el mensaje Hola mundoYou see the Hello World! desde la aplicación de ejemplo mostrada en la página.message from the sample app displayed in the page.

Aplicación de ejemplo que se ejecuta localmente

En la ventana de terminal, presione Ctrl + C para salir del servidor web.In your terminal window, press Ctrl+C to exit the web server.

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. 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.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To start Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Pruébelo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Start Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.

  3. Pegue el código 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.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Seleccione Entrar para ejecutar el código.Select Enter to run the code.

Configuración de un usuario de implementaciónConfigure a deployment user

Se puede implementar FTP y Git local en una aplicación web de Azure mediante un usuario de implementación.FTP and local Git can deploy to an Azure web app by using a deployment user. Una vez configurado este usuario de implementación, podrá usarlo en todas las implementaciones de Azure.Once you configure your deployment user, you can use it for all your Azure deployments. El nombre de usuario y la contraseña en el nivel de cuenta son diferentes de las credenciales de suscripción de Azure.Your account-level deployment username and password are different from your Azure subscription credentials.

Para configurar el usuario de implementación, ejecute el comando az webapp deployment user set en Azure Cloud Shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Reemplace <username> y <password> por un nombre de usuario y una contraseña de usuario de implementación.Replace <username> and <password> with a deployment user username and password.

  • El nombre de usuario debe ser único dentro de Azure y no debe contener el símbolo "@" para las inserciones de Git local.The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • La contraseña debe tener al menos ocho caracteres y dos de los tres elementos siguientes: letras, números y símbolos.The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
az webapp deployment user set --user-name <username> --password <password>

La salida JSON muestra la contraseña como null.The JSON output shows the password as null. Si se produce un error 'Conflict'. Details: 409, cambie el nombre de usuario.If you get a 'Conflict'. Details: 409 error, change the username. Si se produce un error 'Bad Request'. Details: 400, use una contraseña más segura.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Anote el nombre de usuario y la contraseña que se usarán para implementar las aplicaciones web.Record your username and password to use to deploy your web apps.

Crear un grupo de recursosCreate a resource group

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.A resource group is a logical container into which Azure resources, such as web apps, databases, and storage accounts, are deployed and managed. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.For example, you can choose to delete the entire resource group in one simple step later.

En Cloud Shell, cree un grupo de recursos con el comando az group create.In the Cloud Shell, create a resource group with the az group create command. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Oeste de Europa.The following example creates a resource group named myResourceGroup in the West Europe location. Para ver todas las ubicaciones que se admiten en App Service en el nivel Gratis, ejecute el comando az appservice list-locations --sku FREE.To see all supported locations for App Service in Free tier, run the az appservice list-locations --sku FREE command.

az group create --name myResourceGroup --location "West Europe"

Generalmente se crean el grupo de recursos y los recursos en una región cercana.You generally create your resource group and the resources in a region near you.

Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.When the command finishes, a JSON output shows you the resource group properties.

Crear un grupo de recursosCreate a resource group

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.A resource group is a logical container into which Azure resources, such as web apps, databases, and storage accounts, are deployed and managed. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.For example, you can choose to delete the entire resource group in one simple step later.

En Cloud Shell, cree un grupo de recursos con el comando az group create.In the Cloud Shell, create a resource group with the az group create command. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Oeste de Europa.The following example creates a resource group named myResourceGroup in the West Europe location. Para ver todas las ubicaciones de App Service que se admiten en Linux en el nivel Básico, ejecute el comando az appservice list-locations --sku B1 --linux-workers-enabled.To see all supported locations for App Service on Linux in Basic tier, run the az appservice list-locations --sku B1 --linux-workers-enabled command.

az group create --name myResourceGroup --location "West Europe"

Generalmente se crean el grupo de recursos y los recursos en una región cercana.You generally create your resource group and the resources in a region near you.

Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.When the command finishes, a JSON output shows you the resource group properties.

Crear un plan de Azure App ServiceCreate an Azure App Service plan

En Cloud Shell, cree un plan de App Service con el comando az appservice plan create.In the Cloud Shell, create an App Service plan with the az appservice plan create command.

En el siguiente ejemplo se crea un plan de App Service denominado myAppServicePlan con el plan de tarifa Gratis:The following example creates an App Service plan named myAppServicePlan in the Free pricing tier:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

Cuando se crea el plan de App Service, la CLI de Azure muestra información similar al ejemplo siguiente:When the App Service plan has been created, the Azure CLI shows information similar to the following example:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Creación de una aplicación webCreate a web app

En Cloud Shell, cree una aplicación web en el plan de App Service myAppServicePlan con el comando az webapp create.In the Cloud Shell, create a web app in the myAppServicePlan App Service plan with the az webapp create command.

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 -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). El tiempo de ejecución se establece en PHP|7.4.The runtime is set to PHP|7.4. Para ver todos los entornos en tiempo de ejecución admitidos, ejecute az webapp list-runtimes.To see all supported runtimes, run az webapp list-runtimes.

# Bash
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "PHP|7.4" --deployment-local-git
# PowerShell
az --% webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime "PHP|7.4" --deployment-local-git

Nota

El símbolo de detención de análisis (--%), introducido en PowerShell 3.0, indica a PowerShell que no interprete la entrada como expresiones o comandos de PowerShell.The stop-parsing symbol (--%), introduced in PowerShell 3.0, directs PowerShell to refrain from interpreting input as PowerShell commands or expressions.

Cuando se haya creado la aplicación web, la CLI de Azure mostrará información similar a la del ejemplo siguiente:When the web app has been created, the Azure CLI shows output similar to the following example:

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.You've created an empty new web app, with git deployment enabled.

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.The URL of the Git remote is shown in the deploymentLocalGitUrl property, with the format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Guarde esta dirección URL, ya que la necesitará más adelante.Save this URL as you need it later.

Vaya a la aplicación web recién creada.Browse to your newly created web app. Reemplace <app-name> por el nombre de aplicación único creado en el paso anterior.Replace <app-name> with your unique app name created in the prior step.

http://<app-name>.azurewebsites.net

Este es el aspecto que debería tener su nueva aplicación web:Here is what your new web app should look like:

Página de la aplicación web vacía

Inserción en Azure desde GitPush to Azure from Git

En la ventana del terminal local, agregue una instancia remota de Azure al repositorio de Git local.Back in the local terminal window, add an Azure remote to your local Git repository. Reemplace <deploymentLocalGitUrl-from-create-step> por la dirección URL del repositorio Git remoto que guardó en Creación de una aplicación web.Replace <deploymentLocalGitUrl-from-create-step> with the URL of the Git remote that you saved from Create a web app.

git remote add azure <deploymentLocalGitUrl-from-create-step>

Realice la insercion en la instancia remota de Azure para implementar la aplicación con el comando siguiente.Push to the Azure remote to deploy your app with the following command. Cuando el Administrador de credenciales de Git le solicite las credenciales, asegúrese de que especifica las que creó en Configuración de un usuario de implementación, no las que se usan para iniciar sesión en Azure Portal.When Git Credential Manager prompts you for credentials, make sure you enter the credentials you created in Configure a deployment user, not the credentials you use to sign in to the Azure portal.

git push azure master

Este comando puede tardar varios minutos en ejecutarse.This command may take a few minutes to run. Durante la ejecución, muestra información similar a la del ejemplo siguiente:While running, it displays information similar to the following example:

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ónBrowse to the app

Vaya a la aplicación implementada mediante el explorador web.Browse to the deployed application using your web browser.

http://<app-name>.azurewebsites.net

El código de ejemplo de PHP se está ejecutando en una aplicación web de Azure App Service.The PHP sample code is running in an Azure App Service web app.

Aplicación de ejemplo que se ejecuta en Azure

¡Enhorabuena!Congratulations! Ha implementado la primera aplicación PHP en App Service.You've deployed your first PHP app to App Service.

Actualización local y nueva implementación del códigoUpdate locally and redeploy the code

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:Using a local text editor, open the index.php file within the PHP app, and make a small change to the text within the string next to echo:

echo "Hello Azure!";

En la ventana del terminal local, confirme los cambios en Git e inserte los cambios de código en Azure.In the local terminal window, commit your changes in Git, and then push the code changes to 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.Once deployment has completed, return to the browser window that opened during the Browse to the app step, and refresh the page.

Aplicación de ejemplo actualizada que se ejecuta en Azure

Administración de la nueva aplicación de AzureManage your new Azure app

  1. Vaya a Azure Portal para administrar la aplicación web que ha creado.Go to the Azure portal to manage the web app you created. Busque y seleccione App Services.Search for and select App Services.

    Buscar App Services, Azure Portal, crear una aplicación web de PHP

  2. Seleccione el nombre de la aplicación de Azure.Select the name of your Azure app.

    Navegación en el portal a la aplicación de Azure

    Se mostrará la página de información general de la aplicación web.Your web app's Overview page will be displayed. En ella, puede realizar tareas de administración básicas como examinar, detener, reiniciar y eliminar.Here, you can perform basic management tasks like Browse, Stop, Restart, and Delete.

    Página de App Service en Azure Portal

    En el menú de la aplicación web se proporcionan distintas opciones para configurar la aplicación.The web app menu provides different options for configuring your app.

Limpieza de recursosClean up resources

En los pasos anteriores, creó recursos de Azure en un grupo de recursos.In the preceding steps, you created Azure resources in a resource group. Si prevé que no necesitará estos recursos en el futuro, elimine el grupo de recursos ejecutando el siguiente comando en Cloud Shell:If you don't expect to need these resources in the future, delete the resource group by running the following command in the Cloud Shell:

az group delete --name myResourceGroup

Este comando puede tardar varios segundos en ejecutarse.This command may take a minute to run.

Pasos siguientesNext steps

Configure PHP app (Configuración de una aplicación de PHP)Configure PHP app