
Prenons quelques minutes pour découvrir ensemble ce que nous allons réaliser tout au long de cette formation. Du choix de notre serveur dédié, à l'installation des dépendances en passant par la configuration de la zone DNS d'un nom de domaine, vous maîtriserez tous les aspects liés au déploiement de votre code en ligne.
Quelles sont les différentes solutions qui existent sur le marché pour déployer notre code en ligne ? VPS, Cloud, hébergement mutualisé ou dédié ? Je vous propose de découvrir les avantages et inconvénients des différentes solutions.
Vous l'avez compris, nous allons opter pour un serveur dédié ! Mais pourquoi ? Quel est réellement l'interêt de choisir un serveur dédié pour héberger nos plateformes ? Devenez le maître à bord et maîtrisez tous les aspects de la chaîne de production.
Il existe des dizaines et dizaines de possibilités dès lors qu'on souhaite acquérir un serveur dédié. Mais comment faire son choix ? Je vous propose dans cette vidéo d'analyser les différentes offres à notre disposition pour vous permettre de faire les meilleurs choix.
Achetons ensemble notre tout premier serveur dédié. Ce dernier va nous accompagner tout au long de la formation.
L'un des plus gros avantages en choisissant un hébergement sur serveur dédié est sans aucun doute que vous maîtrisez tous les aspects. Nous devons donc commencer par installer le système d'exploitation. Debian, FreeBSD, Ubuntu ? Quoi choisir et quelles différences ?
Je vous propose de découvrir comment discuter et échanger avec votre serveur dédié. Vous allez ouvrir votre terminal pour la première fois et comprendre le fonctionnement du SSH pour vous connecter à votre machine.
Il est impossible de parler l'hébergement sur un serveur dédié sans parler de sécurisation. Je vous propose de découvrir dans les deux prochaines vidéos les concepts les plus importants. Nous allons ainsi mettre en place les mécanismes de sécurité.
Continuions sur notre lancée et déployons les couches de sécurités. Nous allons découvrir comment changer le port par défaut, comment mettre en place Fail2Ban et comment sécuriser la connexion.
Maintenant que nous avons pris en main notre serveur dédié, nous devons installer les dépendances (packages) nécessaires pour faire tourner un serveur web. Sans Apache, Mysql et PHP, nous ne pouvons pas exposer nos plateformes sur le web.
Nous allons installer Apache. Un logiciel de serveur web gratuit et open-source qui alimente environ 46% des sites web à travers le monde. Apache va nous permettre ensuite de créer des virtual host pour exposer nos différents sites.
Sans base de donnée, impossible de faire fonctionner un site dynamique. C'est le cas avec Symfony, nous avons besoin d'une base de donnée. Je vous propose d'installer le package Mysql sur notre serveur dédié.
Voyons ensemble à présent comment installer les versions 7.3 et 7.4 de PHP tout en permettant à Apache de les reconnaître. Analysons le fichier php.ini contenant l'ensemble des configurations de PHP.
Que vient faire GIT dans une formation pour héberger son code ? C'est bien à ce question que je vais tâcher de répondre. Nous allons utiliser GIT dans sa forme la plus simple pour nous permettre de déployer rapidement en ligne de commande.
A présent, nous allons créer notre compte sur Gitlab pour nous permettre d'héberger notre code dans un dépôt. Ce dépôt va nous permettre de suivre l'historique de notre projet. Nous le connecterons ensuite à notre serveur dédié.
Pour continuer notre parcours, nous avons besoin d'un projet "test". Je vous propose de créer un projet Symfony 5 très simple. Nous allons nous servir de ce projet pour tester notre déploiement et l'héberger en ligne.
Nous avons en main notre dépôt Gitlab et notre projet Symfony 5. Il nous reste plus qu'à initialiser un dépôt GIT dans notre projet Symfony 5.
Pour se connecter à Gitlab, nous allons utiliser le principe et le concept de clé SSH. Ainsi, nous pourrons nous authentifier et "pousser" notre code vers notre dépôt.
Maintenant que nous avons GIT sur notre ordinateur personnel, il nous faut installer GIT sur notre serveur dédié. Ceci afin de permettre au serveur de se synchroniser avec GITLAB pour "aspirer" les modifications de notre code. Nous arrivons quasiment à la fin de notre chaîne de mise en production.
Rien d'un mieux qu'un test grandeur nature pour vérifier le fonctionnement de notre chaîne de déploiement. Un commit, on pousse sur le dépôt et on demande au serveur de récupérer les modifications.
Apache est le coeur de notre serveur dédié. Sans lui, il est impossible de faire fonctionner notre serveur web. Je vous propose dans cette vidéo de parcourir l'arborescence, de comprendre l'architecture et les conventions d'Apache.
Avec Apache, nous avons la possibilité de créer des Virtual Host. Des petits fichiers de configuration pour indiquer à Apache comment gérer notre ou nos plateformes. C'est magique et ça va très vite !
Pour poursuivre notre progression, nous avons besoin d'un cas concret ! Achetons ensemble un nom de domaine pour ensuite le faire pointer vers notre serveur dédié.
Qu'est qu'une zone DNS ? Nous avons maintenant en main notre nom de domaine. Je vous propose d'analyser le fonctionnement et la configuration d'une zone DNS. Ceci afin de maîtriser les concepts de redirection et de pointage vers notre serveur dédié.
Nous avions créé ensemble un premier Virtual Host. Maintenant que nous avons notre nom de domaine, nous allons modifier notre Virtual Host avec les paramètres de notre domaine.
Avec Apache, la création simple d'un virtual host ne suffit pas pour déclarer un nouveau site internet. Nous devons indiquer à Apache que nous activons le site. Je vous propose de découvrir les commandes de base.
Je vous propose de découvrir le concept des certificats SSL. Comment rendre son site accessible en HTTPs ? Comment générer un certificat ? La réponse avec Let's Encrypt que nous allons installer sur notre serveur dédié.
Symfony 5 à besoin de permission pour écrire dans des fichiers et dossiers. Oublions le concepts des chmod 777 et laissons place à ACL. Je vous propose d'installer un mécanisme de permission pour Symfony propre et sécurisé.
Je vous propose à présent de mettre en place un sous-domaine qui agit aux yeux d'Apache comme un site classique. Configurons ensemble notre zone DNS et notre Virtual Host.
Pas de serveur dédié sans une bonne logique de sauvegarde. Voyons ensemble comment mettre en place un fichier exécutable qui se chargera d'exporter notre base de donnée.
Je vous propose de créer un script .sh dont la mission sera de "dump" la base de donnée. Il stockera ensuite ce dump dans un dossier dédié. Vous aurez ensuite la possibilité d'envoyer ce fichier sur un serveur distant (VPS, NAS ...)
Maintenant que nous avons notre fichier exécutable qui s'occupe d'extraire la base de donnée, nous souhaitons à présent automatiser les sauvegardes pour exécuter le script tous les jours à 23h59.
Toutes mes félicitations, vous maîtrisez désormais tous les concepts clés de configuration et de gestion de votre propre serveur dédié. Toute la communauté est à votre disposition, tout comme moi, sur mon site et dans l'espace du cours.
Je vous propose de me suivre dans ce deuxième cours, cette fois consacré au déploiement de votre application Symfony 5 (et autre).
Je suis intimement convaincu que pour apprendre efficacement il faut pratiquer et se mesurer à un projet complexe. C'est comme ça que j'ai appris le développement. Je propose dans cette formation à tous les développeurs un apprentissage pas à pas pour maîtriser la configuration d'un serveur dédié, l'installation des dépendances et le déploiement de vos applications Symfony 5 (ou pas d'ailleurs !).
* Vous maîtriserez les mécanismes et concepts de déploiement et de configuration.
* Vous apprendrez à manipuler vos dépendances. Installation, gestion et configuration de Mysql, Apache, PHP et GIT.
* Vous apprendrez les concepts de sécurisation de votre serveur (port, fail2ban,ssh...).
* Vous maîtriserez les notions liées à votre nom de domaine et à la configuration de la zone DNS.
* Vous serez en capacité de déployer rapidement vos modifications et fonctionnalités à l'aide d'un cycle de déploiement : Local vers dépôt GIT vers Serveur dédié (Push/Pull).
L'objectif est de vous fournir toutes les notions liées à la gestion de votre serveur dédié. Ainsi, vous serez en mesure ensuite de gérer en totale autonomie votre serveur, vos configurations et vos hébergements d'application. Il vous sera ainsi possible de déployer votre ou vos plateformes sur votre hébergement dont vous maîtriserez tous les aspects.