Pour ce mini-hack, je vous propose d'utiliser Microsoft Azure App Service pour déployer une application PHP Symfony3. Ce tutoriel se déroule en 3 phases :
- La vérification des prérequis nécessaires
- La création d'une application web Azure avec Microsoft Azure App Service
- La création et le déploiement d'une application Symfony3 sur Microsoft Azure
- L'un des éditeurs de code avancé suivant :
- Un compte Microsoft Azure :
- Git :
- Une distribution récente de PHP 5 ou 7 avec l'extension openssl activée :
Azure App Service est un service de plateforme ou Paas (Platform as a Service) qui permet de créer des applications web et mobiles dans le cloud Azure.
Pour créer une nouvelle application web depuis le portail Azure :
- Cliquez sur Nouveau > Web + mobile > Application web
- Complétez ensuite les premières informations nécessaires :
- Saisissez le nom de l'application : à vous de choisir (attention de ne pas choisir un nom déjà pris)
- Sélectionnez l'abonnement Azure (dans le cas où vous auriez plusieurs abonnements Azure)
- Sélectionnez l'option Nouveau pour le groupe de ressources et saisissez un nom pour ce groupe de ressources (attention de ne pas choisir un nom déjà pris)
- Créez un plan Azure App Service pour l'application web :
- Cliquez sur [+] Créer nouveau
- Saisissez un nom pour le nouveau plan App Service (attention de ne pas choisir un nom déjà pris)
- Sélectionnez un emplacement : pour ce mini-hack, sélectionnez l'Europe occidentale (West Europe)
- Cliquez sur Niveau de tarification puis cliquez sur Afficher tout pour afficher davantage d'options de tarification, telles que Gratuit et Partagé
- Sélectionnez le niveau de tarification F1 (gratuit) pour le service puis cliquez sur Sélectionner
- Valider l'ensemble en cliquant sur OK
- Renseignez enfin les dernières informations nécessaires :
- App Insights : laisser désactivée cette fonctionnalité qui n'est pas dans le périmètre de ce mini-hack
- Epingler au tableau de bord : conseillé pour accéder plus facilement à votre service
- Cliquez sur le bouton Créer pour lancer la création de l'appplication web
Une fois la création terminée, le portail Azure affiche une vue d'ensemble de l'application web.
- Cliquez sur le lien vers l'URL de l'application web
Le navigateur affiche une page par défault indiquant que l'application web a été créée avec succès.
Azure App Service permet de paramétrer la version de PHP utilisée pour l'exécution d'une application PHP. Nous allons maintenant paramétrer l'application web Azure pour qu'elle utilise PHP en version 7.
- Dans la section Paramètres de l'application web, cliquez sur Paramètres de l'application
- Sélectionnez la version 7 de PHP
- Cliquez sur Enregistrer pour valider les modifications
Symfony3 est la dernière version courante du framework Symfony de SensioLabs. Ce framework permet de créer des applications PHP allant du simple blog aux grandes applications critiques d'entreprise. Symfony permet de programmer avec une approche orientée composant en permettant ainsi au développeur d'utiliser toute ou partie du framework dans la construction d'une application.
Pour ce faire, nous allons utiliser un programme d'installation dédié nommé Symfony Installer.
- Pour installer Symfony Installer, suivez les instructions ci-dessous en fonction de votre système d'exploitation :
# Sous Mac OS X ou Linux
$ sudo curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
$ sudo chmod a+x /usr/local/bin/symfony
# Sous Windows
c:\> php -r "file_put_contents('symfony', file_get_contents('https://symfony.com/installer'));"
Note pour les utilisateurs sous Windows :
- Ajoutez le fichier symfony dans la variable d'environnement PATH pour pouvoir appeler ce programme depuis n'importe quel répertoire.
- Pour démarer un nouveau projet d'application Symfony, suivez les instructions ci-dessous en fonction de votre système d'exploitation :
# Sous Mac OS X ou Linux
$ symfony new <my_project_name>
# Sous Windows
$ php symfony new <my_project_name>
Après quelques secondes, la nouvelle application Symfony est prête pour être exécutée en local.
- Pour lancer l'exécution de l'application, suivez les instructions indiquées dans le terminal (ignorez la configuration du fichier parameters.yml) :
Le navigateur affiche alors la page montrée dans la figure ci-dessous :
Pour déployer une application web sur Azure, il faut au préalable retourner sur l'application web Azure créée dans la section 2. Pour configurer la souce de déploiement :
- Rendez-vous sur le portail Azure
- Cliquez sur l'application web (épinglée normalement sur le tableau de bord du portail)
- Dans la section Déploiement des applications de l'application web, cliquez sur Options de déploiement
- Cliquez sur Choisir la source
- Sélectionnez Référentiel Git local
- Cliquez sur OK pour valider le choix de la source de déploiement
L'application web dispose désormais d'une URL de clonage Git accessible depuis la vue d'ensemble de l'application comme le montre la figure suivante :
Si vous n'avez jamais déployé d'application web Azure à partir d'un référentiel Git local, il est nécessaire de renseigner les informations d'identification du référentiel Git local :
- Dans la section Déploiement des applications de l'application web, cliquez sur Informations d'identification de déploiement
- Saisissez un nom d'utilisateur
- Saisissez un mot de passe
- Confirmez le mot de passe
- Cliquez sur Enregistrer pour valider les informations d'identification
Maintenant que la source de déploiement est entièrement configurée, il est temps de déployer l'application PHP Symfony3 créée dans la section 3. Juste avant cela, intéressons nous aux 3 fichiers contenus dans le répertoire Sources du mini-hack :
- web.config
- .deployment
- deploy.sh
Le fichier web .config : Ce fichier permet de définir les règles de réécriture des URL comme vous le feriez habituellement dans un fichier .htaccess. Ces règles sont nécessaires pour que l'application se comporte correctement lors de la navigation.
Le fichier .deployment : Ce fichier permet de personnaliser le déploiement d'une application web sur Azure avec Azure App Service. Dans cet exemple, le fichier .deployment contient une instruction de configuration pour que le fichier deploy.sh soit exécuté lors du déploiement.
Le fichier deploy.sh : Ce fichier écrit en shell permet de scripter le déploiement de l'application. Le nom du fichier est important pour que le déploiement fonctionne (n'oubliez paz le point devant le nom). Son utilisation n'est pas systématique lorsque l'on déploie des application web avec Azure App Service. Néanmoins, pour une application PHP qui utilise le programme composer pour installer les dépendances du projet d'application, le fichier .deployment est obligatoire.
Pour procéder au déploiement de l'application :
- Copiez les fichiers web.config, .deployment et deploy.sh à la racine du projet d'application Symfony
- Exécutez les commandes suivantes depuis un terminal :
$ git init
$ git remote add azure <url_de_clonage_git_de_l'application_web>
$ git add .
$ git commit -m "Déploiement de l'application PHP Symfony3"
$ git push azure master
Le déploiement dure quelques minutes. Une fois le déploiement terminé, lancez de nouveau l'application web Azure dans un navigateur pour observer le résultat.
C'est terminé ! Pensez à valider votre mini-hack, il y a des cadeaux à gagner !
Ces parties sont optionnelles dans le cadre du mini-hack, mais voici quelques idées pour aller plus loin :
- [Ajouter une base de données MySQL avec MySQL In App](MySQL in-app/README.md)
- [Ajouter une notification de déploiement par email avec Azure Functions et SendGrid](Azure Functions/README.md)
- Personnaliser le déploiement d'une application web Azure avec Kudu