Tutoriel : Générer une application PHP et MySQL dans Azure App ServiceTutorial: Build a PHP and MySQL app in Azure App Service

Azure App Service fournit un service d’hébergement web hautement évolutif et appliquant des mises à jour correctives automatiques en utilisant le système d’exploitation Windows.Azure App Service provides a highly scalable, self-patching web hosting service using the Windows operating system. Ce tutoriel montre comment créer une application PHP dans Azure et comment la connecter à une base de données MySQL.This tutorial shows how to create a PHP app in Azure and connect it to a MySQL database. Quand vous aurez terminé, vous disposerez d’une application Laravel s’exécutant sur Azure App Service sous Windows.When you're finished, you'll have a Laravel app running on Azure App Service on Windows.

Azure App Service fournit un service d’hébergement web hautement évolutif et appliquant des mises à jour correctives automatiques en utilisant le système d’exploitation Linux.Azure App Service provides a highly scalable, self-patching web hosting service using the Linux operating system. Ce tutoriel montre comment créer une application PHP dans Azure et comment la connecter à une base de données MySQL.This tutorial shows how to create a PHP app in Azure and connect it to a MySQL database. Quand vous aurez terminé, vous disposerez d’une application Laravel s’exécutant sur Azure App Service sur Linux.When you're finished, you'll have a Laravel app running on Azure App Service on Linux.

Capture d’écran d’un exemple d’application PHP intitulé Task List (Liste des tâches).

Dans ce tutoriel, vous allez apprendre à :In this tutorial, you learn how to:

  • Création d’une base de données MySQL dans AzureCreate a MySQL database in Azure
  • Connexion d’une application PHP à MySQLConnect a PHP app to MySQL
  • Déploiement de l’application dans AzureDeploy the app to Azure
  • Mise à jour du modèle de données et redéploiement de l’applicationUpdate the data model and redeploy the app
  • Diffusion des journaux de diagnostic à partir d’AzureStream diagnostic logs from Azure
  • Gérer l’application dans le portail AzureManage the app in the Azure portal

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

PrérequisPrerequisites

Pour suivre ce tutoriel :To complete this tutorial:

  • Installez GitInstall Git
  • Installez PHP 5.6.4 ou version ultérieureInstall PHP 5.6.4 or above
  • Installez ComposerInstall Composer
  • Activez les extensions PHP suivantes dont Laravel a besoin : OpenSSL, PDO-MySQL, Mbstring, Tokenizer, XMLEnable the following PHP extensions Laravel needs: OpenSSL, PDO-MySQL, Mbstring, Tokenizer, XML
  • Installez et démarrez MySQL - Utilisez l’environnement Bash dans Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window - Si vous préférez, installez l’interface Azure CLI pour exécuter les commandes de référence de l’interface de ligne de commande.If you prefer, install the Azure CLI to run CLI reference commands.- Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login.If you're using a local installation, sign in to the Azure CLI by using the az login command. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal.To finish the authentication process, follow the steps displayed in your terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.- Lorsque vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation.When you're prompted, install Azure CLI extensions on first use. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.For more information about extensions, see Use extensions with the Azure CLI. - Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées.Run az version to find the version and dependent libraries that are installed. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.To upgrade to the latest version, run az upgrade.Install and start MySQL - Utilisez l’environnement Bash dans Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window - Si vous préférez, installez l’interface Azure CLI pour exécuter les commandes de référence de l’interface de ligne de commande.If you prefer, install the Azure CLI to run CLI reference commands.- Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login.If you're using a local installation, sign in to the Azure CLI by using the az login command. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal.To finish the authentication process, follow the steps displayed in your terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.- Lorsque vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation.When you're prompted, install Azure CLI extensions on first use. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.For more information about extensions, see Use extensions with the Azure CLI. - Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées.Run az version to find the version and dependent libraries that are installed. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.To upgrade to the latest version, run az upgrade.

Préparation du MySQL localPrepare local MySQL

Dans cette étape, vous allez créer une base de données dans votre serveur MySQL local qui vous sera utile dans ce didacticiel.In this step, you create a database in your local MySQL server for your use in this tutorial.

Se connecter au serveur MySQL localConnect to local MySQL server

Dans une fenêtre de terminal, connectez-vous à votre serveur MySQL local.In a terminal window, connect to your local MySQL server. Vous pouvez utiliser cette fenêtre de terminal pour exécuter toutes les commandes de ce didacticiel.You can use this terminal window to run all the commands in this tutorial.

mysql -u root -p

Si vous êtes invité à entrer un mot de passe, tapez le mot de passe du compte root.If you're prompted for a password, enter the password for the root account. Si vous avez oublié votre mot de passe de compte racine, consultez MySQL: How to Reset the Root Password (MySQL : Réinitialisation du mot de passe racine).If you don't remember your root account password, see MySQL: How to Reset the Root Password.

Si la commande est exécutée correctement, votre serveur MySQL est en cours d’exécution.If your command runs successfully, then your MySQL server is running. Dans le cas contraire, assurez-vous que votre serveur MySQL local est démarré en suivant ces étapes consécutives à l’installation de MySQL.If not, make sure that your local MySQL server is started by following the MySQL post-installation steps.

Créer une base de données localeCreate a database locally

À l’invite mysql, créez une base de données.At the mysql prompt, create a database.

CREATE DATABASE sampledb;

Quittez votre connexion au serveur en tapant quit.Exit your server connection by typing quit.

quit

Créer une application PHP localeCreate a PHP app locally

Dans cette étape, vous allez créer un exemple d’application Laravel, configurer sa connexion à la base de données et l’exécuter localement.In this step, you get a Laravel sample application, configure its database connection, and run it locally.

Clonage de l’exempleClone the sample

Dans la fenêtre de terminal, cd vers un répertoire de travail.In the terminal window, cd to a working directory.

Exécutez la commande suivante pour cloner l’exemple de référentiel :Run the following command to clone the sample repository.

git clone https://github.com/Azure-Samples/laravel-tasks

cd vers votre répertoire cloné.cd to your cloned directory. Installez les packages requis.Install the required packages.

cd laravel-tasks
composer install

Configuration de la connexion MySQLConfigure MySQL connection

À la racine du référentiel, créez un fichier nommé .env.In the repository root, create a file named .env. Copiez les variables suivantes dans le fichier .env.Copy the following variables into the .env file. Remplacez l’espace réservé <root_password> par le mot de passe de l’utilisateur racine de MySQL.Replace the <root_password> placeholder with the MySQL root user's password.

APP_ENV=local
APP_DEBUG=true
APP_KEY=

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=sampledb
DB_USERNAME=root
DB_PASSWORD=<root_password>

Pour en savoir plus sur la manière dont Laravel utilise ce fichier .env, consultez Configuration de l’environnement Laravel.For information on how Laravel uses the .env file, see Laravel Environment Configuration.

Télécharger l’exemple localementRun the sample locally

Exécutez les migrations de base de données Laravel pour créer les tables requises par l’application.Run Laravel database migrations to create the tables the application needs. Pour voir quelles tables sont créées dans les migrations, consultez le répertoire database/migrations dans le référentiel Git.To see which tables are created in the migrations, look in the database/migrations directory in the Git repository.

php artisan migrate

Générez une nouvelle clé d’application Laravel.Generate a new Laravel application key.

php artisan key:generate

Exécutez l'application.Run the application.

php artisan serve

Dans un navigateur, accédez à http://localhost:8000.Navigate to http://localhost:8000 in a browser. Ajoutez quelques tâches dans la page.Add a few tasks in the page.

PHP se connecte correctement à MySQL

Pour arrêter PHP, tapez Ctrl + C dans le terminal.To stop PHP, type Ctrl + C in the terminal.

Création de MySQL dans AzureCreate MySQL in Azure

Dans cette étape, vous allez créer une base de données MySQL dans Azure Database pour MySQL.In this step, you create a MySQL database in Azure Database for MySQL. Ensuite, vous configurerez l’application PHP pour la connexion à cette base de données.Later, you configure the PHP application to connect to this database.

Créer un groupe de ressourcesCreate a resource group

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.A resource group is a logical container into which Azure resources, such as web apps, databases, and storage accounts, are deployed and managed. Par exemple, vous pouvez choisir de supprimer le groupe de ressources complet ultérieurement en une seule étape.For example, you can choose to delete the entire resource group in one simple step later.

Dans Cloud Shell, créez un groupe de ressources avec la commande az group create.In the Cloud Shell, create a resource group with the az group create command. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement Europe Ouest.The following example creates a resource group named myResourceGroup in the West Europe location. Pour afficher tous les emplacements pris en charge pour App Service au niveau Gratuit, exécutez la commande 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"

Vous créez généralement votre groupe de ressources et les ressources dans une région proche de chez vous.You generally create your resource group and the resources in a region near you.

Une fois la commande terminée, une sortie JSON affiche les propriétés du groupe de ressources.When the command finishes, a JSON output shows you the resource group properties.

Création d’un serveur MySQLCreate a MySQL server

Dans Cloud Shell, créez un serveur dans Azure Database pour MySQL avec la commande az mysql server create.In the Cloud Shell, create a server in Azure Database for MySQL with the az mysql server create command.

Dans la commande suivante, remplacez l’espace réservé <mysql-server-name> par un nom de serveur unique, l’espace réservé <admin-user> par un nom d’utilisateur et l’espace réservé <admin-password> par un mot de passe.In the following command, substitute a unique server name for the <mysql-server-name> placeholder, a user name for the <admin-user>, and a password for the <admin-password> placeholder. Le nom de serveur est utilisé dans votre point de terminaison MySQL (https://<mysql-server-name>.mysql.database.azure.com). C’est pourquoi, il doit être unique parmi l’ensemble des serveurs dans Azure.The server name is used as part of your MySQL endpoint (https://<mysql-server-name>.mysql.database.azure.com), so the name needs to be unique across all servers in Azure. Pour plus d’informations sur la sélection de la référence (SKU) de base de données MySQL, consultez Créer un serveur de base de données Azure pour MySQL.For details on selecting MySQL DB SKU, see Create an Azure Database for MySQL server.

az mysql server create --resource-group myResourceGroup --name <mysql-server-name> --location "West Europe" --admin-user <admin-user> --admin-password <admin-password> --sku-name B_Gen5_1

Lorsque le serveur MySQL est créé, l’interface Azure CLI affiche des informations similaires à l’exemple suivant :When the MySQL server is created, the Azure CLI shows information similar to the following example:

{
  "administratorLogin": "<admin-user>",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "<mysql-server-name>.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/<mysql-server-name>",
  "location": "westeurope",
  "name": "<mysql-server-name>",
  "resourceGroup": "myResourceGroup",
  ...
  -  < Output has been truncated for readability >
}

Configuration d’un pare-feu de serveurConfigure server firewall

Dans Cloud Shell, créez une règle de pare-feu pour votre serveur MySQL afin d’autoriser les connexions client à l’aide de la commande az mysql server firewall-rule create.In the Cloud Shell, create a firewall rule for your MySQL server to allow client connections by using the az mysql server firewall-rule create command. Lorsque les adresses IP de début et de fin sont définies sur 0.0.0.0, le pare-feu est ouvert uniquement pour les autres ressources Azure.When both starting IP and end IP are set to 0.0.0.0, the firewall is only opened for other Azure resources.

az mysql server firewall-rule create --name allAzureIPs --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0

Conseil

Vous pouvez être encore plus restrictif dans votre règle de pare-feu en choisissant uniquement les adresses IP sortantes que votre application utilise.You can be even more restrictive in your firewall rule by using only the outbound IP addresses your app uses.

Dans Cloud Shell, réexécutez la commande pour autoriser l’accès à partir de votre ordinateur local en remplaçant <your-ip-address> par votre adresse IP IPv4 locale.In the Cloud Shell, run the command again to allow access from your local computer by replacing <your-ip-address> with your local IPv4 IP address.

az mysql server firewall-rule create --name AllowLocalClient --server <mysql-server-name> --resource-group myResourceGroup --start-ip-address=<your-ip-address> --end-ip-address=<your-ip-address>

Se connecter au serveur de production MySQL localementConnect to production MySQL server locally

Dans la fenêtre du terminal local, connectez-vous au serveur MySQL dans Azure.In the local terminal window, connect to the MySQL server in Azure. Utilisez la valeur spécifiée précédemment pour <admin-user> et <mysql-server-name> .Use the value you specified previously for <admin-user> and <mysql-server-name>. Lorsqu’une invite de mot de passe apparaît, utilisez le mot de passe que vous avez spécifié lors de la création de la base de données dans Azure.When prompted for a password, use the password you specified when you created the database in Azure.

mysql -u <admin-user>@<mysql-server-name> -h <mysql-server-name>.mysql.database.azure.com -P 3306 -p

Création d’une base de données de productionCreate a production database

À l’invite mysql, créez une base de données.At the mysql prompt, create a database.

CREATE DATABASE sampledb;

Création d’un utilisateur avec des autorisationsCreate a user with permissions

Créez un utilisateur de base de données nommé phpappuser et accordez-lui tous les privilèges dans la base de données sampledb.Create a database user called phpappuser and give it all privileges in the sampledb database. Par souci de simplicité, dans le cadre de ce tutoriel, utilisez MySQLAzure2017 comme mot de passe.For simplicity of the tutorial, use MySQLAzure2017 as the password.

CREATE USER 'phpappuser' IDENTIFIED BY 'MySQLAzure2017'; 
GRANT ALL PRIVILEGES ON sampledb.* TO 'phpappuser';

Quittez la connexion au serveur en tapant quit.Exit the server connection by typing quit.

quit

Connexion de l’application à Azure MySQLConnect app to Azure MySQL

Dans cette étape, vous allez connecter l’application PHP à la base de données MySQL que vous avez créée dans Azure Database pour MySQL.In this step, you connect the PHP application to the MySQL database you created in Azure Database for MySQL.

Configurer la connexion à la base de donnéesConfigure the database connection

À la racine du référentiel, créez un fichier .env.production et copiez-y les variables suivantes.In the repository root, create an .env.production file and copy the following variables into it. Remplacez l’espace réservé <mysql-server-name> dans DB_HOST et DB_USERNAME.Replace the placeholder_<mysql-server-name>_ in both DB_HOST and DB_USERNAME.

APP_ENV=production
APP_DEBUG=true
APP_KEY=

DB_CONNECTION=mysql
DB_HOST=<mysql-server-name>.mysql.database.azure.com
DB_DATABASE=sampledb
DB_USERNAME=phpappuser@<mysql-server-name>
DB_PASSWORD=MySQLAzure2017
MYSQL_SSL=true

Enregistrez les modifications.Save the changes.

Conseil

Pour sécuriser vos informations de connexion MySQL, ce fichier est déjà exclu du référentiel Git (consultez .gitignore dans la racine du référentiel).To secure your MySQL connection information, this file is already excluded from the Git repository (See .gitignore in the repository root). Vous apprendrez ultérieurement à configurer les variables d’environnement dans App Service pour vous connecter à votre base de données dans Azure Database pour MySQL.Later, you learn how to configure environment variables in App Service to connect to your database in Azure Database for MySQL. Avec les variables d’environnement, vous n’avez pas besoin du fichier .env dans App Service.With environment variables, you don't need the .env file in App Service.

Configurer le certificat TLS/SSLConfigure TLS/SSL certificate

Par défaut, la base de données Azure Database pour MySQL exige des connexions TLS de la part des clients.By default, Azure Database for MySQL enforces TLS connections from clients. Pour vous connecter à votre base de données MySQL dans Azure, vous devez utiliser le certificat .pem fourni par Azure Database pour MySQL.To connect to your MySQL database in Azure, you must use the .pem certificate supplied by Azure Database for MySQL.

Ouvrez config/database.php et ajoutez les paramètres sslmode et options à connections.mysql, comme illustré dans le code suivant.Open config/database.php and add the sslmode and options parameters to connections.mysql, as shown in the following code.

'mysql' => [
    ...
    'sslmode' => env('DB_SSLMODE', 'prefer'),
    'options' => (env('MYSQL_SSL')) ? [
        PDO::MYSQL_ATTR_SSL_KEY    => '/ssl/BaltimoreCyberTrustRoot.crt.pem', 
    ] : []
],
'mysql' => [
    ...
    'sslmode' => env('DB_SSLMODE', 'prefer'),
    'options' => (env('MYSQL_SSL') && extension_loaded('pdo_mysql')) ? [
        PDO::MYSQL_ATTR_SSL_KEY    => '/ssl/BaltimoreCyberTrustRoot.crt.pem',
    ] : []
],

Le certificat BaltimoreCyberTrustRoot.crt.pem est fourni dans le référentiel pour des raisons pratiques dans ce didacticiel.The certificate BaltimoreCyberTrustRoot.crt.pem is provided in the repository for convenience in this tutorial.

Tester localement l’applicationTest the application locally

Exécutez les migrations de base de données Laravel avec .env.production comme fichier d’environnement pour créer les tables dans votre base de données MySQL dans Azure Database pour MySQL.Run Laravel database migrations with .env.production as the environment file to create the tables in your MySQL database in Azure Database for MySQL. N’oubliez pas que . env.production contient les informations de connexion à votre base de données MySQL dans Azure.Remember that .env.production has the connection information to your MySQL database in Azure.

php artisan migrate --env=production --force

.env.production n’a pas encore de clé d’application valide..env.production doesn't have a valid application key yet. Générez-en une pour lui dans le terminal.Generate a new one for it in the terminal.

php artisan key:generate --env=production --force

Exécutez l’exemple d’application avec .env.production comme fichier d’environnement.Run the sample application with .env.production as the environment file.

php artisan serve --env=production

Accédez à http://localhost:8000.Navigate to http://localhost:8000. Si la page se charge sans erreur, l’application PHP se connecte à la base de données MySQL dans Azure.If the page loads without errors, the PHP application is connecting to the MySQL database in Azure.

Ajoutez quelques tâches dans la page.Add a few tasks in the page.

PHP se connecte correctement à Azure Database pour MySQL

Pour arrêter PHP, tapez Ctrl + C dans le terminal.To stop PHP, type Ctrl + C in the terminal.

Validation de vos modificationsCommit your changes

Exécutez les commandes Git suivantes pour valider vos modifications :Run the following Git commands to commit your changes:

git add .
git commit -m "database.php updates"

Votre application est prête à être déployée.Your app is ready to be deployed.

Déployer dans AzureDeploy to Azure

Dans cette étape, vous allez déployer l’application PHP connectée à MySQL dans Azure App Service.In this step, you deploy the MySQL-connected PHP application to Azure App Service.

Configuration d’un utilisateur de déploiementConfigure a deployment user

Vous pouvez déployer le protocole FTP et Git local sur une application web Azure en faisant appel à un utilisateur de déploiement.FTP and local Git can deploy to an Azure web app by using a deployment user. Une fois que vous avez créé votre utilisateur de déploiement, vous pouvez l’utiliser pour tous vos déploiements Azure.Once you configure your deployment user, you can use it for all your Azure deployments. 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.Your account-level deployment username and password are different from your Azure subscription credentials.

Pour configurer l’utilisateur de déploiement, exécutez la commande az webapp deployment user set dans Azure Cloud Shell.To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. Remplacez <username> et <password> par un nom d’utilisateur et un mot de passe de déploiement.Replace <username> and <password> with a deployment user username and password.

  • Le nom d’utilisateur doit être unique dans Azure et, pour les push Git locaux, ne doit pas contenir le symbole « @ ».The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • Le mot de passe doit comporter au moins huit caractères et inclure deux des trois éléments suivants : lettres, chiffres et symboles.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 sortie JSON affiche le mot de passe comme étant null.The JSON output shows the password as null. Si vous obtenez une erreur 'Conflict'. Details: 409, modifiez le nom d’utilisateur.If you get a 'Conflict'. Details: 409 error, change the username. Si vous obtenez une erreur 'Bad Request'. Details: 400, utilisez un mot de passe plus fort.If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Enregistrez le nom d’utilisateur et le mot de passe à utiliser pour déployer vos applications web.Record your username and password to use to deploy your web apps.

Créer un plan App ServiceCreate an App Service plan

Dans Cloud Shell, créez un plan App Service avec la commande az appservice plan create.In the Cloud Shell, create an App Service plan with the az appservice plan create command.

L’exemple suivant crée un plan App Service nommé myAppServicePlan dans le niveau tarifaire Gratuit :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

Lorsque le plan App Service est créé, l’interface Azure CLI affiche des informations similaires à l’exemple suivant :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
} 

Dans Cloud Shell, créez un plan App Service dans le groupe de ressources avec la commande az appservice plan create.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

L’exemple suivant crée un plan App Service nommé myAppServicePlan au niveau tarifaire Gratuit (--sku F1) et dans un conteneur Linux (--is-linux).The following example creates an App Service plan named myAppServicePlan in the Free pricing tier (--sku F1) and in a Linux container (--is-linux).

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

Lorsque le plan App Service est créé, l’interface Azure CLI affiche des informations similaires à l’exemple suivant :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": "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 webCreate a web app

Créer une application web dans le plan App Service myAppServicePlan.Create a web app in the myAppServicePlan App Service plan.

Dans Cloud Shell, vous pouvez utiliser la commande az webapp create.In the Cloud Shell, you can use the az webapp create command. Dans l’exemple suivant, remplacez <app-name> par un nom d’application unique (les caractères autorisés sont a-z, 0-9 et -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). Le runtime est défini sur PHP|7.2.The runtime is set to PHP|7.2. Pour voir tous les runtimes, exécutez az webapp list-runtimes --linux.To see all supported runtimes, run az webapp list-runtimes --linux.

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

Une fois l’application web créée, Azure CLI affiche une sortie similaire à l’exemple suivant :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",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Vous avez créé une application web vide, avec le déploiement Git activé.You’ve created an empty new web app, with git deployment enabled.

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.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. Enregistrez cette URL, car vous en aurez besoin ultérieurement.Save this URL as you need it later.

Créer une application web dans le plan App Service myAppServicePlan.Create a web app in the myAppServicePlan App Service plan.

Dans Cloud Shell, vous pouvez utiliser la commande az webapp create.In the Cloud Shell, you can use the az webapp create command. Dans l’exemple suivant, remplacez <app-name> par un nom d’application unique (les caractères autorisés sont a-z, 0-9 et -).In the following example, replace <app-name> with a globally unique app name (valid characters are a-z, 0-9, and -). Le runtime est défini sur PHP|7.2.The runtime is set to PHP|7.2. Pour voir tous les runtimes, exécutez az webapp list-runtimes --linux.To see all supported runtimes, run az webapp list-runtimes --linux.

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

Une fois l’application web créée, Azure CLI affiche une sortie similaire à l’exemple suivant :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",
  "deploymentLocalGitUrl": "https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Vous avez créé une application web vide, avec le déploiement Git activé.You’ve created an empty new web app, with git deployment enabled.

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.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. Enregistrez cette URL, car vous en aurez besoin ultérieurement.Save this URL as you need it later.

Configuration des paramètres de la base de donnéesConfigure database settings

Dans App Service, vous définissez les variables d’environnement en tant que paramètres d’application à l’aide de la commande az webapp config appsettings set.In App Service, you set environment variables as app settings by using the az webapp config appsettings set command.

La commande suivante configure les paramètres d’application DB_HOST, DB_DATABASE, DB_USERNAME et DB_PASSWORD.The following command configures the app settings DB_HOST, DB_DATABASE, DB_USERNAME, and DB_PASSWORD. Remplacez les espaces réservés <app-name> et <mysql-server-name> .Replace the placeholders <app-name> and <mysql-server-name>.

az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DB_HOST="<mysql-server-name>.mysql.database.azure.com" DB_DATABASE="sampledb" DB_USERNAME="phpappuser@<mysql-server-name>" DB_PASSWORD="MySQLAzure2017" MYSQL_SSL="true"

Vous pouvez utiliser la méthode PHP getenv pour accéder aux paramètres.You can use the PHP getenv method to access the settings. Votre code Laravel utilise un wrapper env sur le PHP getenv.the Laravel code uses an env wrapper over the PHP getenv. Par exemple, la configuration MySQL dans config/database.php ressemble au code suivant :For example, the MySQL configuration in config/database.php looks like the following code:

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'forge'),
    'username'  => env('DB_USERNAME', 'forge'),
    'password'  => env('DB_PASSWORD', ''),
    ...
],

Configuration des variables d’environnement LaravelConfigure Laravel environment variables

Laravel a besoin d’une clé d’application dans App Service.Laravel needs an application key in App Service. Vous pouvez la configurer avec les paramètres d’application.You can configure it with app settings.

Dans la fenêtre de terminal local, utilisez php artisan pour générer une nouvelle clé d’application sans l’enregistrer dans .env.In the local terminal window, use php artisan to generate a new application key without saving it to .env.

php artisan key:generate --show

Dans Cloud Shell, définissez la clé d’application dans l’application App Service en utilisant la commande az webapp config appsettings set.In the Cloud Shell, set the application key in the App Service app by using the az webapp config appsettings set command. Remplacez les espaces réservés <app-name> et <outputofphpartisankey:generate> .Replace the placeholders <app-name> and <outputofphpartisankey:generate>.

az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings APP_KEY="<output_of_php_artisan_key:generate>" APP_DEBUG="true"

APP_DEBUG="true" indique à Laravel de renvoyer les informations de débogage quand l’application déployée rencontre des erreurs.APP_DEBUG="true" tells Laravel to return debugging information when the deployed app encounters errors. Lorsque vous exécutez une application de production, affectez-lui la valeur false, qui est plus sécurisée.When running a production application, set it to false, which is more secure.

Définition du chemin d’accès de l’application virtuelleSet the virtual application path

Définissez le chemin de l’application virtuelle pour l’application.Set the virtual application path for the app. Cette étape est requise car le cycle de vie de l’application Laravel commence dans le répertoire public et non pas dans le répertoire racine de votre application.This step is required because the Laravel application lifecycle begins in the public directory instead of the application's root directory. Les autres infrastructures PHP dont le cycle de vie démarre dans le répertoire racine peuvent fonctionner sans configuration manuelle du chemin d’accès à l’application virtuelle.Other PHP frameworks whose lifecycle start in the root directory can work without manual configuration of the virtual application path.

Dans Cloud Shell, définissez le chemin d’accès à l’application virtuelle en utilisant la commande az resource update.In the Cloud Shell, set the virtual application path by using the az resource update command. Remplacez l’espace réservé <app-name> .Replace the <app-name> placeholder.

az resource update --name web --resource-group myResourceGroup --namespace Microsoft.Web --resource-type config --parent sites/<app_name> --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2015-06-01

Par défaut, Azure App Service pointe le chemin d’accès à l’application virtuelle ( / ) vers le répertoire racine des fichiers d’application déployés (sites\wwwroot).By default, Azure App Service points the root virtual application path (/) to the root directory of the deployed application files (sites\wwwroot).

Le cycle de vie de l’application Laravel commence dans le répertoire public, et non pas dans le répertoire racine de l’application.Laravel application lifecycle begins in the public directory instead of the application's root directory. L’image par défaut Docker PHP pour App Service utilise Apache, et ne vous permet pas de personnaliser DocumentRoot pour Laravel.The default PHP Docker image for App Service uses Apache, and it doesn't let you customize the DocumentRoot for Laravel. Toutefois, vous pouvez utiliser .htaccess pour réécrire toutes les requêtes pour pointer vers /public au lieu du répertoire racine.However, you can use .htaccess to rewrite all requests to point to /public instead of the root directory. Dans le répertoire racine, l’élément .htaccess a déjà été ajouté à cet effet.In the repository root, an .htaccess is added already for this purpose. Ainsi, votre application Laravel est prête à être déployée.With it, your Laravel application is ready to be deployed.

Pour plus d’informations, consultez Modifier la racine du site.For more information, see Change site root.

Effectuer une transmission de type push vers Azure à partir de GitPush to Azure from Git

De retour dans la fenêtre de terminal locale, ajoutez un dépôt distant Azure dans votre dépôt Git local.Back in the local terminal window, add an Azure remote to your local Git repository. Remplacez <deploymentLocalGitUrl-from-create-step> par l’URL du dépôt Git distant que vous avez enregistrée à partir de Créer une application 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>

Effectuez une transmission de type push vers le référentiel distant Azure pour déployer votre application à l’aide de la commande suivante.Push to the Azure remote to deploy your app with the following command. 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.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

L’exécution de cette commande peut prendre quelques minutes.This command may take a few minutes to run. Pendant son exécution, des informations semblables à ce qui suit s’affichent :While running, it displays information similar to the following example:

Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Updating branch 'main'.
remote: Updating submodules.
remote: Preparing deployment for commit id 'a5e076db9c'.
remote: Running custom deployment command...
remote: Running deployment command...
...
< Output has been truncated for readability >

Notes

Vous remarquerez peut-être que le processus de déploiement installe les packages Composer à la fin.You may notice that the deployment process installs Composer packages at the end. App Service n’exécute pas ces automatisations pendant le déploiement par défaut. Cet exemple de référentiel possède donc trois fichiers supplémentaires dans son répertoire racine pour l’activer :App Service does not run these automations during default deployment, so this sample repository has three additional files in its root directory to enable it:

  • .deployment : ce fichier indique à App Service d’exécuter bash deploy.sh en tant que script de déploiement personnalisé..deployment - This file tells App Service to run bash deploy.sh as the custom deployment script.
  • deploy.sh : le script de déploiement personnalisé.deploy.sh - The custom deployment script. Si vous examinez le fichier, vous verrez qu’il exécute php composer.phar install après npm install.If you review the file, you will see that it runs php composer.phar install after npm install.
  • composer.phar - Le Gestionnaire de package Composer.composer.phar - The Composer package manager.

Vous pouvez utiliser cette approche pour ajouter une étape à votre déploiement Git sur App Service.You can use this approach to add any step to your Git-based deployment to App Service. Pour plus d'informations, consultez le script de déploiement personnalisé.For more information, see Custom Deployment Script.

De retour dans la fenêtre de terminal locale, ajoutez un dépôt distant Azure dans votre dépôt Git local.Back in the local terminal window, add an Azure remote to your local Git repository. Remplacez <deploymentLocalGitUrl-from-create-step> par l’URL du dépôt Git distant que vous avez enregistrée à partir de Créer une application 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>

Effectuez une transmission de type push vers le référentiel distant Azure pour déployer votre application à l’aide de la commande suivante.Push to the Azure remote to deploy your app with the following command. 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.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

L’exécution de cette commande peut prendre quelques minutes.This command may take a few minutes to run. Pendant son exécution, des informations semblables à ce qui suit s’affichent :While running, it displays information similar to the following example:

Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Updating branch 'main'.
remote: Updating submodules.
remote: Preparing deployment for commit id 'a5e076db9c'.
remote: Running custom deployment command...
remote: Running deployment command...
...
< Output has been truncated for readability >

Accéder à l’application AzureBrowse to the Azure app

Accédez à http://<app-name>.azurewebsites.net et ajoutez quelques tâches à la liste.Browse to http://<app-name>.azurewebsites.net and add a few tasks to the list.

Capture d’écran de l’exemple d’application Azure nommé Task List (Liste des tâches) montrant les nouvelles tâches ajoutées.

Félicitations, vous exécutez une application PHP orientée données dans Azure App Service.Congratulations, you're running a data-driven PHP app in Azure App Service.

Mettre à jour et redéployer un modèle localementUpdate model locally and redeploy

Dans cette étape, vous allez apporter une modification simple au modèle de données task et à l’application web, puis publier la mise à jour sur Azure.In this step, you make a simple change to the task data model and the webapp, and then publish the update to Azure.

Pour le scénario des tâches, vous modifiez l’application afin de pouvoir marquer une tâche comme terminée.For the tasks scenario, you modify the application so that you can mark a task as complete.

Ajout d’une colonneAdd a column

Dans la fenêtre de terminal local, accédez à la racine du référentiel Git.In the local terminal window, navigate to the root of the Git repository.

Générez une nouvelle migration de base de données pour la table tasks :Generate a new database migration for the tasks table:

php artisan make:migration add_complete_column --table=tasks

Cette commande affiche le nom du fichier de migration qui est généré.This command shows you the name of the migration file that's generated. Recherchez ce fichier dans database/migrations et ouvrez-le.Find this file in database/migrations and open it.

Remplacez la méthode up par le code suivant :Replace the up method with the following code:

public function up()
{
    Schema::table('tasks', function (Blueprint $table) {
        $table->boolean('complete')->default(False);
    });
}

Le code ci-dessus ajoute une colonne booléenne dans la table tasks nommée complete.The preceding code adds a boolean column in the tasks table called complete.

Remplacez la méthode down par le code suivant pour l’action de restauration :Replace the down method with the following code for the rollback action:

public function down()
{
    Schema::table('tasks', function (Blueprint $table) {
        $table->dropColumn('complete');
    });
}

Dans la fenêtre de terminal local, exécutez les migrations de base de données Laravel pour apporter la modification dans la base de données locale.In the local terminal window, run Laravel database migrations to make the change in the local database.

php artisan migrate

Selon la convention d’affectation de noms Laravel, le modèle Task (voir app/Task.php) est mappé à la table tasks par défaut.Based on the Laravel naming convention, the model Task (see app/Task.php) maps to the tasks table by default.

Mise à jour de la logique d’applicationUpdate application logic

Ouvrez le fichier routes/web.php.Open the routes/web.php file. L’application définit ici ses itinéraires et sa logique métier.The application defines its routes and business logic here.

À la fin du fichier, ajoutez un itinéraire avec le code suivant :At the end of the file, add a route with the following code:

/**
 * Toggle Task completeness
 */
Route::post('/task/{id}', function ($id) {
    error_log('INFO: post /task/'.$id);
    $task = Task::findOrFail($id);

    $task->complete = !$task->complete;
    $task->save();

    return redirect('/');
});

Le code ci-dessus effectue une simple mise à jour du modèle de données en basculant la valeur de complete.The preceding code makes a simple update to the data model by toggling the value of complete.

Mise à jour de la vueUpdate the view

Ouvrez le fichier resources/views/tasks.blade.php.Open the resources/views/tasks.blade.php file. Recherchez la balise d’ouverture <tr> et remplacez-la par :Find the <tr> opening tag and replace it with:

<tr class="{{ $task->complete ? 'success' : 'active' }}" >

Le code ci-dessus modifie la couleur de la ligne selon que la tâche est terminée ou non.The preceding code changes the row color depending on whether the task is complete.

La ligne suivante contient le code suivant :In the next line, you have the following code:

<td class="table-text"><div>{{ $task->name }}</div></td>

Remplacez la ligne entière par le code suivant :Replace the entire line with the following code:

<td>
    <form action="{{ url('task/'.$task->id) }}" method="POST">
        {{ csrf_field() }}

        <button type="submit" class="btn btn-xs">
            <i class="fa {{$task->complete ? 'fa-check-square-o' : 'fa-square-o'}}"></i>
        </button>
        {{ $task->name }}
    </form>
</td>

Le code ci-dessus ajoute le bouton Envoyer qui fait référence à l’itinéraire défini précédemment.The preceding code adds the submit button that references the route that you defined earlier.

Test des modifications en localTest the changes locally

Dans la fenêtre de terminal local, exécutez le serveur de développement à partir du répertoire racine du référentiel Git.In the local terminal window, run the development server from the root directory of the Git repository.

php artisan serve

Pour voir l’évolution de l’état de la tâche, accédez à http://localhost:8000 et activez la case à cocher.To see the task status change, navigate to http://localhost:8000 and select the checkbox.

Case à cocher ajoutée à la tâche

Pour arrêter PHP, tapez Ctrl + C dans le terminal.To stop PHP, type Ctrl + C in the terminal.

Publier les modifications dans AzurePublish changes to Azure

Dans la fenêtre de terminal local, exécutez les migrations de base de données Laravel avec la chaîne de connexion de production pour apporter la modification dans la base de données Azure.In the local terminal window, run Laravel database migrations with the production connection string to make the change in the Azure database.

php artisan migrate --env=production --force

Validez toutes les modifications dans Git, puis envoyez les modifications de code à Azure.Commit all the changes in Git, and then push the code changes to Azure.

git add .
git commit -m "added complete checkbox"
git push azure main

Une fois le git push terminé, accédez à l’application Azure et testez la nouvelle fonctionnalité.Once the git push is complete, navigate to the Azure app and test the new functionality.

Modifications du modèle et de la base de données publiées dans Azure

Si vous avez ajouté des tâches, celles-ci sont conservées dans la base de données.If you added any tasks, they are retained in the database. Les mises à jour appliquées au schéma de données n’affectent pas les données existantes.Updates to the data schema leave existing data intact.

Diffuser les journaux de diagnosticStream diagnostic logs

Pendant l’exécution de l’application PHP dans Azure App Service, vous pouvez acheminer les journaux d’activité de la console vers votre terminal.While the PHP application runs in Azure App Service, you can get the console logs piped to your terminal. De cette façon, vous pouvez obtenir les mêmes messages de diagnostic pour vous aider à déboguer les erreurs d’application.That way, you can get the same diagnostic messages to help you debug application errors.

Pour démarrer la diffusion de journaux, utilisez la commande az webapp log tail dans Cloud Shell.To start log streaming, use the az webapp log tail command in the Cloud Shell.

az webapp log tail --name <app_name> --resource-group myResourceGroup

Une fois que la diffusion a démarré, actualisez l’application Azure dans le navigateur pour générer un trafic web.Once log streaming has started, refresh the Azure app in the browser to get some web traffic. Vous pouvez maintenant voir les journaux d’activité de la console acheminés vers le terminal.You can now see console logs piped to the terminal. Si vous ne voyez pas les journaux d’activité de la console, attendez 30 secondes et vérifiez à nouveau.If you don't see console logs immediately, check again in 30 seconds.

Pour arrêter le streaming des journaux à tout moment, appuyez sur Ctrl+C.To stop log streaming at any time, type Ctrl+C.

Pour accéder aux journaux de la console générés à l’intérieur du code de votre application dans App Service, activez la journalisation des diagnostics en exécutant la commande suivante dans Cloud Shell :To access the console logs generated from inside your application code in App Service, turn on diagnostics logging by running the following command in the Cloud Shell:

az webapp log config --resource-group <resource-group-name> --name <app-name> --application-logging true --level Verbose

Les valeurs possibles pour --level sont : Error, Warning, Info et Verbose.Possible values for --level are: Error, Warning, Info, and Verbose. Chaque niveau suivant comprend le niveau précédent.Each subsequent level includes the previous level. Par exemple : Error comprend uniquement les messages d’erreur et Verbose comprend tous les messages.For example: Error includes only error messages, and Verbose includes all messages.

Une fois la journalisation des diagnostics activée, exécutez la commande suivante pour voir le flux de journal :Once diagnostic logging is turned on, run the following command to see the log stream:

az webapp log tail --resource-group <resource-group-name> --name <app-name>

Si vous ne voyez pas les journaux d’activité de la console, attendez 30 secondes et vérifiez à nouveau.If you don't see console logs immediately, check again in 30 seconds.

Notes

Vous pouvez également inspecter les fichiers journaux à partir du navigateur sur https://<app-name>.scm.azurewebsites.net/api/logs/docker.You can also inspect the log files from the browser at https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Pour arrêter le streaming des journaux à tout moment, appuyez sur Ctrl+C.To stop log streaming at any time, type Ctrl+C.

Conseil

Une application PHP peut utiliser la commande error_log() pour envoyer le résultat vers la console.A PHP application can use the standard error_log() to output to the console. L’exemple d’application utilise cette approche dans app/Http/routes.php.The sample application uses this approach in app/Http/routes.php.

Laravel utilise Monolog comme fournisseur de journalisation, de la même manière qu’une infrastructure web.As a web framework, Laravel uses Monolog as the logging provider. Pour voir comment faire pour que Monolog génère des messages de sortie sur la console, consultez PHP: How to use monolog to log to console (php://out) (PHP : Utilisation de monolog pour se connecter à la console (php://out)).To see how to get Monolog to output messages to the console, see PHP: How to use monolog to log to console (php://out).

Gérer l’application AzureManage the Azure app

Accédez au portail Azure pour gérer l’application que vous avez créée.Go to the Azure portal to manage the app you created.

Dans le menu de gauche, cliquez sur App Services, puis sur le nom de votre application Azure.From the left menu, click App Services, and then click the name of your Azure app.

Navigation au sein du portail pour accéder à l’application Azure

La page Vue d’ensemble de votre application s’affiche.You see your app's Overview page. Ici, vous pouvez effectuer des tâches de gestion de base (arrêter, démarrer, redémarrer, parcourir et supprimer).Here, you can perform basic management tasks like stop, start, restart, browse, and delete.

Le menu de gauche fournit des pages vous permettant de configurer votre application.The left menu provides pages for configuring your app.

Page App Service du Portail Azure

Nettoyer les ressourcesClean up resources

Au cours des étapes précédentes, vous avez créé des ressources Azure au sein d’un groupe de ressources.In the preceding steps, you created Azure resources in a resource group. 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 :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

L’exécution de cette commande peut prendre une minute.This command may take a minute to run.

Étapes suivantesNext steps

Dans ce didacticiel, vous avez appris à :In this tutorial, you learned how to:

  • Création d’une base de données MySQL dans AzureCreate a MySQL database in Azure
  • Connexion d’une application PHP à MySQLConnect a PHP app to MySQL
  • Déploiement de l’application dans AzureDeploy the app to Azure
  • Mise à jour du modèle de données et redéploiement de l’applicationUpdate the data model and redeploy the app
  • Diffusion des journaux de diagnostic à partir d’AzureStream diagnostic logs from Azure
  • Gérer l’application dans le portail AzureManage the app in the Azure portal

Passez au didacticiel suivant pour découvrir comment mapper un nom DNS personnalisé à l’application.Advance to the next tutorial to learn how to map a custom DNS name to the app.

Ou consultez les autres ressources :Or, check out other resources: