Exercice - Déployer une application PHP et MySQL - Serveur flexible sur Azure App Service

Effectué

Dans cette leçon, vous générez et déployez un exemple d’application PHP sur Azure App Service et l’intégrez à Azure Database pour MySQL – Serveur flexible sur le back-end.

ÉTAPE 1 - Créer un serveur flexible Azure Database pour MySQL

Tout d’abord, vous approvisionnez un serveur flexible MySQL avec une connectivité d’accès public, configurez des règles de pare-feu pour permettre à l’application d’accéder au serveur et créez une base de données de production.

Vous utilisez le Portail Azure pour parcourir l’expérience de création du serveur flexible MySQL.

  1. Connectez-vous au portail Azure en utilisant le compte que vous avez utilisé pour activer le bac à sable.

  2. Dans la zone de recherche située en haut de la page, entrez MySQL, puis sélectionnez Serveurs flexibles Azure Database pour MySQL.

    Capture d’écran de la barre de recherche en haut du portail montrant les résultats de la recherche de mysql.

  3. Sur la page Serveurs flexibles Azure Database pour MySQL, sélectionnez + Créer, puis Serveur flexible.

    Capture d’écran du menu Créer développé avec l’élément de menu Serveur flexible mis en surbrillance.

  4. Dans la page Serveur flexible, sous l’onglet Informations de base, entrez les informations du tableau suivant.

    Setting Valeur suggérée
    Abonnement Abonnement Concierge
    Resource group Dans la liste déroulante, sélectionnez le groupe de ressources commençant par learn-
    Nom du serveur Entrez un nom global unique qui identifie votre serveur flexible.
    Version de MySQL 8.0
    Type de charge de travail Sélectionnez Pour les projets de développement ou de loisirs.
    Nom d’utilisateur administrateur Entrez mysqladmin. N’utilisez pas « azure_superuser », « admin », « administrateur », « root », « guest » ou « public ».
    Mot de passe Entrez Passw0rd123. Le mot de passe doit contenir entre 8 et 128 caractères et inclure des caractères de trois catégories : Lettres majuscules et minuscules latines, chiffres (0 à 9) et caractères non alphanumériques (tels que !, $, #, %).

    Gardez les valeurs par défaut pour tous les autres paramètres.

  5. Dans l’onglet De base, sous Calcul + stockage, sélectionnez Configure le serveur.

  6. Sur la page Calcul + stockage, configurez les paramètres suivants :

    • Calcul
      • Sélectionnez le niveau de calcul Burstable.
      • Dans la liste déroulante Calcul Taille, sélectionnez Standard_B1s (1 vCore, 1 Gio de mémoire, 400 IOPS max).
    • Stockage
      • Vérifiez que la Taille de stockage (en Go) est définie sur 20.
      • Sélectionnez E/S par seconde préconfigurées et laissez la valeur définie sur 360.
      • Vérifiez que la case Croissance automatique du stockage est cochée.
    • Haute disponibilité
      • Vérifiez que la case Activer la haute disponibilité n’est pas cochée.
    • Sauvegardes
      • Vérifiez que la Période de rétention de sauvegarde (en jours) est définie sur 7.
      • Vérifiez que la case Récupérer après une panne ou un sinistre au niveau de la région n’est pas cochée.
  7. Sélectionnez Enregistrer, puis accédez à l’onglet Mise en réseau.

    Capture d’écran montrant le panneau Création de serveurs flexibles, avec une zone rouge autour de l’onglet Mise en réseau.

  8. Dans l’onglet Mise en réseau, sélectionnez la méthode de connectivité Accès public (adresses IP autorisées), cochez Autoriser l’accès public à cette ressource via Internet à l’aide d’une adresse IP publique, puis Autoriser l’accès public à partir de n’importe quel service Azure dans Azure sur ce serveur, comme illustré dans la capture d’écran suivante.

  9. Sélectionnez Vérifier + créer pour passer en revue la configuration de votre serveur flexible MySQL.

  10. Sélectionnez Créer pour approvisionner le serveur. L’approvisionnement peut durer jusqu’à 10 minutes.

  11. Une fois le déploiement terminé, sélectionnez Accéder à la ressource pour afficher la page Vue d’ensemble du serveur flexible Azure Database pour MySQL.

Pour le reste de cet exercice, vous exécutez les commandes en utilisant Azure Cloud Shell qui apparaît à droite de cette fenêtre.

Pour créer une base de données de production MySQL sampledb à utiliser avec l’application PHP, exécutez la commande suivante :

az mysql flexible-server db create \
--resource-group <rgn>[Sandbox resource group name]</rgn> \
--server-name <your-mysql-server-name> \
--database-name sampledb

ÉTAPE 2 : cloner votre application

Pour cet exercice, vous utilisez un exemple d’application PHP qui affiche et gère un catalogue de produits. L’application fournit des fonctionnalités de base telles que l’affichage des produits dans le catalogue, l’ajout de nouveaux produits, la mise à jour des prix des articles existants et la suppression de produits.

Vous clonez directement l’application codée et apprenez à la déployer sur Azure App Service.

Remarque

Pour en savoir plus sur le code de l’application, explorez l’application dans le référentiel GitHub.

  1. Pour cloner l’exemple de référentiel d’application et passer à la racine du référentiel, exécutez les commandes suivantes :

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Exécutez la commande suivante pour vous assurer que la branche par défaut est main.

    git branch -m main
    

ÉTAPE 3 - Créer et configurer une application web Azure App Service

Dans Azure App Service (Web Apps, API Apps ou Mobile Apps), une application s’exécute tout le temps dans un plan App Service. Un plan App Service définit un ensemble de ressources de calcul nécessaires à l’exécution d’une application web. Dans cette étape, vous créez un plan Azure App Service et une application web App Service dans celui-ci, lequel va héberger l’exemple d’application.

  1. Pour créer un plan App Service dans le niveau tarifaire Gratuit, exécutez la commande suivante :

    az appservice plan create --name plan-learn \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --location centralus \
    --sku FREE --is-linux
    
  2. Si vous souhaitez déployer une application sur une application web Azure à l’aide de méthodes de déploiement telles que FTP ou Git local, vous devez configurer un utilisateur de déploiement avec des informations d’identification de nom d’utilisateur et de mot de passe. Une fois que vous avez créé votre utilisateur de déploiement, vous pouvez vous en servir pour tous vos déploiements Azure App Service.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. Pour créer une application web App Service avec le runtime PHP 8.0 et configurer l’option de déploiement Git local pour déployer votre application à partir d’un dépôt Git sur votre ordinateur local, exécutez la commande suivante.

    Remarque : Remplacez <your-app-name> par un nom d’application global unique (caractères autorisés : a-z, 0-9 et -).

    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
    

    Important

    Dans la sortie Azure CLI, l’URL du référentiel distant Git s’affiche 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.

  4. Le fichier config.php de l’exemple d’application PHP récupère les informations de connexion de base de données (nom de serveur, nom de base de données, nom d’utilisateur du serveur et mot de passe) à partir des variables d’environnement à l’aide de la fonction getenv(). Dans App Service, pour définir des variables d’environnement comme Paramètres d’application (appsettings), exécutez la commande suivante :

    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"
    

    Cette commande ci-dessus configure les paramètres de connexion de base de données du serveur flexible MySQL dans l’application web.

ÉTAPE 4 : déployer votre application à l’aide de Git local

À présent, vous déployez l’exemple d’application PHP sur Azure App Service en utilisant l’option de déploiement Git local.

  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. Pour définir DEPLOYMENT_BRANCH sous Paramètres d’application, exécutez la commande suivante :

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Vérifiez que vous êtes dans le répertoire racine du référentiel d’applications.

  3. Pour ajouter un dépôt distant Azure à votre dépôt Git local, exécutez la commande suivante.

    Remarque : Remplacez <deploymentLocalGitUrl> par l’URL du dépôt distant Git que vous avez enregistrée lors de l’étape Créer une application web App Service.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Pour déployer votre application en utilisant un git push sur le dépôt distant Azure, exécutez la commande suivante. Lorsque le gestionnaire d’informations d’identification de Git vous invite à entrer des informations d’identification, entrez les informations de déploiement que vous avez créées lors de l’étape Configurer un utilisateur de déploiement.

    git push azure main
    

Le déploiement peut prendre quelques minutes.

ÉTAPE 5 : test de l’application

Enfin, testez l’application en accédant à https://<app-name>.azurewebsites.net, puis en ajoutant, en affichant, en mettant à jour ou en supprimant des éléments du catalogue de produits.

Capture d’écran de l’application web déployée affichée dans le navigateur web.

Félicitations ! Vous avez réussi à déployer un exemple d’application PHP sur Azure App Service et à l’intégrer à Azure Database pour MySQL – Serveur flexible sur le back-end.