Créer une application web PHP dans Azure App Service

Azure App Service offre un service d’hébergement web hautement évolutif appliquant des mises à jour correctives automatiques. Ce démarrage rapide montre comment déployer une application PHP sur Azure App Service sous Windows.

Vous créez l’application web dans Cloud Shell grâce à l’interface Azure CLI, et vous utilisez Git pour déployer l’exemple de code PHP dans l’application web.

Sample app running in Azure

Vous pouvez suivre ces étapes en utilisant un ordinateur Mac, Windows ou Linux. Une fois les composants requis installés, l’exécution de cette procédure prend environ cinq minutes.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

Pour suivre ce guide de démarrage rapide :

Téléchargez l’exemple localement

  1. Exécutez les commandes suivantes dans une fenêtre de terminal. Cette action va cloner l’exemple d’application sur votre ordinateur local et vous faire accéder au répertoire contenant l’exemple de code.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Assurez-vous que la branche par défaut est main.

    git branch -m main
    

    Conseil

    La modification du nom de la branche n’est pas requise par App Service. Toutefois, étant donné que de nombreux référentiels remplacent leur branche par défaut par main, ce guide de démarrage rapide vous montre également comment déployer un référentiel à partir de main.

Exécutez l’application localement.

  1. Exécutez l’application localement pour voir à quoi elle devrait ressembler lorsque vous la déploierez sur Azure. Ouvrez une fenêtre de terminal et utilisez la commande php pour lancer le serveur web PHP intégré.

    php -S localhost:8080
    
  2. Ouvrez un navigateur web et accédez à l’application exemple à l’adresse http://localhost:8080.

    Vous voyez apparaître sur la page le message Hello World! de l’exemple d’application.

    Sample app running locally

  3. Dans la fenêtre de terminal, appuyez sur Ctrl + C pour quitter le serveur web.

Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Button to launch Azure Cloud Shell.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Pour utiliser Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.

  3. Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.

  4. Sélectionnez Entrée pour exécuter le code ou la commande.

Configuration d’un utilisateur de déploiement

Vous pouvez déployer le protocole FTP et Git local sur une application web Azure en faisant appel à un utilisateur de déploiement. Une fois que vous avez créé votre utilisateur de déploiement, vous pouvez l’utiliser pour tous vos déploiements Azure. Votre nom d’utilisateur et votre mot de passe de déploiement au niveau du compte sont différents de vos informations d’identification de l’abonnement Azure.

Pour configurer l’utilisateur de déploiement, exécutez la commande az webapp deployment user set dans Azure Cloud Shell. Remplacez <username> et <password> par un nom d’utilisateur et un mot de passe de déploiement.

  • Le nom d’utilisateur doit être unique dans Azure et, pour les push Git locaux, ne doit pas contenir le symbole « @ ».
  • Le mot de passe doit comporter au moins huit caractères et inclure deux des trois éléments suivants : lettres, chiffres et symboles.
az webapp deployment user set --user-name <username> --password <password>

La sortie JSON affiche le mot de passe comme étant null. Si vous obtenez une erreur 'Conflict'. Details: 409, modifiez le nom d’utilisateur. Si vous obtenez une erreur 'Bad Request'. Details: 400, utilisez un mot de passe plus fort.

Enregistrez le nom d’utilisateur et le mot de passe à utiliser pour déployer vos applications web.

Créer un groupe de ressources

Un groupe de ressources est un conteneur logique dans lequel les ressources Azure, comme les applications web, les bases de données et les comptes de stockage, sont déployées et managées. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.

Dans Cloud Shell, créez un groupe de ressources avec la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement Europe Ouest. Pour afficher tous les emplacements pris en charge pour App Service au niveau Gratuit, exécutez la commande az appservice list-locations --sku FREE.

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

Vous créez généralement votre groupe de ressources et les ressources dans une région proche de chez vous.

Une fois la commande terminée, une sortie JSON affiche les propriétés du groupe de ressources.

Créer un plan Azure App Service

Dans Cloud Shell, créez un plan App Service avec la commande az appservice plan create.

L’exemple suivant crée un plan App Service nommé myAppServicePlan dans le niveau tarifaire myAppServicePlan :

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

Lorsque le plan App Service est créé, l’interface Azure CLI affiche des informations similaires à l’exemple suivant :

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

Créer une application web

  1. Dans Cloud Shell, créez une application web dans le plan App Service myAppServicePlan avec la commande az webapp create.

    Dans l’exemple suivant, remplacez <app-name> par un nom d’application unique (les caractères autorisés sont a-z, 0-9 et -). Le runtime est défini sur PHP|7.4. Pour voir tous les runtimes, exécutez az webapp list-runtimes.

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --deployment-local-git
    

    Une fois l’application web créée, Azure CLI affiche une sortie similaire à l’exemple suivant :

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

    Vous avez créé une application web vide, avec le déploiement Git activé.

    Notes

    L’URL du Git distant est indiquée dans la propriété deploymentLocalGitUrl, avec le format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Enregistrez cette URL, car vous en aurez besoin ultérieurement.

  2. Accédez à votre nouvelle application web. Remplacez <app-name> par votre nom d’application unique créé à l’étape précédente.

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

    Voici à quoi doit ressembler votre nouvelle application web :

    Empty web app page

Effectuer une transmission de type push vers Azure à partir de Git

  1. Étant donné que vous déployez la branche main, vous devez définir la branche de déploiement par défaut pour votre application App Service sur main (voir main). Dans Cloud Shell, définissez le paramètre d’application DEPLOYMENT_BRANCH à l’aide de la commande az webapp config appsettings set.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. De retour dans la fenêtre de terminal locale, ajoutez un dépôt distant Azure dans votre dépôt Git local. Remplacez <deploymentLocalGitUrl-from-create-step> par l’URL du Git distant que vous avez enregistrée à la section Créer une app web.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Effectuez une transmission de type push vers le référentiel distant Azure pour déployer votre application à l’aide de la commande suivante. Quand Git Credential Manager vous invite à entrer vos informations d’identification, veillez à entrer celles que vous avez créées dans la section Configurer un utilisateur de déploiement, et non pas celles vous permettant de vous connecter au portail Azure.

    git push azure main
    

    L’exécution de cette commande peut prendre quelques minutes. Pendant son exécution, des informations semblables à ce qui suit s’affichent :

  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
  

Accéder à l’application

Accédez à l’application déployée à l’aide de votre navigateur web.

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

L’exemple de code PHP s’exécute dans une application web Azure App Service.

Sample app running in Azure

Félicitations ! Vous avez déployé votre première application en PHP dans App Service.

Mettre à jour localement et redéployer le code

  1. À l’aide d’un éditeur de texte local, ouvrez le fichier index.php dans l’application PHP et modifiez une petite partie du texte contenu dans la chaîne en regard de l’élément echo :

    echo "Hello Azure!";
    
  2. Dans la fenêtre du terminal local, validez vos modifications dans Git, puis envoyez les modifications de code à Azure.

    git commit -am "updated output"
    git push azure main
    
  3. Une fois le déploiement terminé, revenez à la fenêtre du navigateur que vous avez ouverte à l’étape Accéder à l’application, puis actualisez la page.

    Updated sample app running in Azure

Gérer votre nouvelle application Azure

  1. Accédez au Portail Azure pour gérer l’application web que vous avez créée. Recherchez et sélectionnez App Services.

    Search for App Services, Azure portal, create PHP web app

  2. Sélectionnez le nom de votre application Azure.

    Portal navigation to Azure app

    La page Vue d’ensemble de votre application web s’affiche. Elle vous permet d’exécuter des tâches de gestion de base telles que Parcourir, Arrêter, Redémarrer et Supprimer.

    App Service page in Azure portal

    Le menu de l’application web fournit différentes options vous permettant de configurer votre application.

Nettoyer les ressources

Au cours des étapes précédentes, vous avez créé des ressources Azure au sein d’un groupe de ressources. Si vous ne pensez pas avoir besoin de ces ressources à l’avenir, supprimez le groupe de ressources en exécutant la commande suivante dans Cloud Shell :

az group delete --name myResourceGroup

L’exécution de cette commande peut prendre une minute.

Azure App Service offre un service d’hébergement web hautement évolutif appliquant des mises à jour correctives automatiques. Ce guide de démarrage rapide montre comment déployer une application PHP sur Azure App Service sur Linux.

Screenshot of the sample app running in Azure.

Vous pouvez suivre ces étapes en utilisant un ordinateur Mac, Windows ou Linux. Une fois les composants requis installés, l’exécution de cette procédure prend environ cinq minutes.

Pour effectuer ce démarrage rapide, les éléments suivants sont requis :

1 - Obtenir l’exemple de référentiel

Vous pouvez créer l’application web dans Cloud Shell grâce à l’interface Azure CLI, et vous utilisez Git pour déployer l’exemple de code PHP dans l’application web.

  1. Dans une fenêtre de terminal, exécutez les commandes suivantes pour cloner l’exemple d’application sur votre machine locale puis accédez à la racine du projet.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Pour exécuter l’application localement, utilisez la commande php afin de lancer le serveur web PHP intégré.

    php -S localhost:8080
    
  3. Accédez à l’exemple d’application disponible à l’adresse http://localhost:8080 dans un navigateur web.

    Screenshot of the sample app running locally.

  4. Dans la fenêtre de terminal, appuyez sur Ctrl + C pour quitter le serveur web.

2 – Déployer votre code d’application sur Azure

Azure CLI a une commande az webapp up qui crée les ressources nécessaires et déploie votre application en une seule étape.

Dans le terminal, déployez le code dans votre dossier local à l’aide de la commande az webapp up :

az webapp up --runtime "PHP:8.2" --os-type=linux
  • Si la commande az n’est pas reconnue, vérifiez qu’Azure CLI est installé.
  • L’argument --runtime "PHP:8.2" crée l’application web avec PHP version 8.2.
  • L’argument --os-type=linux crée l’application web sur App Service sur Linux.
  • Vous pouvez éventuellement spécifier un nom avec l’argument --name <app-name>. Si vous n’en fournissez pas, le nom est généré automatiquement.
  • Vous pouvez éventuellement inclure l’argument --location <location-name><location_name> est une région Azure disponible. Vous pouvez récupérer une liste de régions autorisées pour votre compte Azure en exécutant la commande az account list-locations.
  • Si vous voyez l’erreur « Impossible de détecter automatiquement la pile d’exécution de votre application », vérifiez que vous exécutez la commande dans le répertoire de code (consultez Résolution des problèmes de détection automatique avec az webapp up).

L’exécution de la commande peut prendre plusieurs minutes. Pendant son exécution, elle fournit des messages sur la création du groupe de ressources, du plan App Service et de la ressource d’application, sur la configuration de la journalisation et sur le déploiement ZIP. Elle affiche ensuite le message « Vous pouvez lancer l’application sur http://<app-name>.azurewebsites.net », qui est l’URL de l’application sur 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"
}

Notes

La commande az webapp up exécute les actions suivantes :

Accédez à l’application déployée à l’aide de votre navigateur web à l’URL http://<app-name>.azurewebsites.net.

L’exemple de code PHP s’exécute dans Azure App Service.

Screenshot of the sample app running in Azure, showing 'Hello World!'.

Félicitations ! Vous avez déployé votre première application en PHP sur App Service à l’aide du portail Azure.

3 - Mise à jour et redéploiement de l’application

  1. À l’aide d’un éditeur de texte local, ouvrez le fichier index.php dans l’application PHP et modifiez une petite partie du texte contenu dans la chaîne en regard de l’élément echo :

    echo "Hello Azure!";
    
  2. Enregistrez vos modifications, puis redéployez l’application en réexécutant la commande az webapp up avec ces arguments :

    az webapp up --runtime "PHP:8.2" --os-type=linux
    
  3. Une fois le déploiement terminé, revenez à la fenêtre du navigateur que vous avez ouverte à l’étape Accéder à l’application, puis actualisez la page.

    Screenshot of the updated sample app running in Azure.

4 - Gérer votre nouvelle application Azure

  1. Accédez au Portail Azure pour gérer l’application web que vous avez créée. Recherchez et sélectionnez App Services.

    Screenshot of the Azure portal with 'app services' typed in the search text box. In the results, the App Services option under Services is highlighted.

  2. Sélectionnez le nom de votre application Azure.

    Screenshot of the App Services list in Azure. The name of the demo app service is highlighted.

    La page Vue d’ensemble de votre application web doit s’afficher. Elle vous permet d’exécuter des tâches de gestion de base telles que Parcourir, Arrêter, Redémarrer et Supprimer.

    Screenshot of the App Service overview page in Azure portal. In the action bar, the Browse, Stop, Swap (disabled), Restart, and Delete button group is highlighted.

    Le menu de l’application web fournit différentes options vous permettant de configurer votre application.

5 - Nettoyer les ressources

Lorsque vous en avez terminé avec l’exemple d’application, vous pouvez supprimer d’Azure toutes les ressources pour l’application. Cela vous permet d’éviter les frais supplémentaires et d’encombrer votre abonnement Azure. Supprimer le groupe de ressources permet également de supprimer toutes les ressources qu’il contient. Cette méthode est la plus rapide pour supprimer toutes les ressources Azure de votre application.

Supprimez le groupe de ressources à l’aide de la commande az group delete.

az group delete --name myResourceGroup

L’exécution de cette commande prend une minute.

Étapes suivantes