Déployer un site depuis 0
Pour cet exemple, nous allons faire comme si nous déployions notre site depuis 0 avec une installation à travers SSH (dans tous les cas on en aura besoin !)
Nous allons utiliser la plateforme always data pour héberger notre site, la plateforme propose de très bonnes offres gratuites 😏 suffisantes pour notre projet ! (Au début je voulais le faire sur créapro, mais bon php est trop vieux !)
Créez vous donc un compte et connectez vous à la plateforme.
Admin always data
L'admin d'always data se découpe en plusieurs sections :
- Espace disque : Monitorer l'espace disque
-
Web :
- Sites : Pour retrouver ses sites crées
- Analytics : Les données concernant la consultation de vos sites
- Configuration : Configuration de votre webserver par site
- Domaine : Enregistrer vos noms de domaine (pas utile dans ce cours)
- Emails : Boites mails (pas utiles dans notre cas)
-
Base de données :
- Mysql : base mysql (ce que l'on va utiliser)
- ... autres types de bases disponibles (non important pour le cours)
-
Accès distants
- FTP: pour configurer vos accès en ftp afin de déposer les fichiers
- SSH : pour configurer vos accès ssh afin d'accéder à la console à distance
- WebDav : non important pour ce cours
-
Environnement :
- PHP : configuration des environnements php
- ... pareil pour tous les autres langages
- Avancé : Pas besoin pour ce cours de s'aventurer ici
Par défaut, Always data vous créer un site en php, vous pouvez aller le voir dans la section Sites
!
Configurer un utilisateur ssh
Pour accéder à votre machine en ssh, vous allez devoir créer un nouvel utilisateur dans la section Accès distants / ssh
.
Dans les options définissez un mot de passe et cochez bien Activer la connexion par mot de passe
, pour ceux qui connaissent vous pouvez définir votre shell, sinon laissez le en bash.
Parfait, maintenant nous avons des identifiants pour se connecter à notre serveur !
En haut de votre écran vous allez pouvoir accèder à votre machine en ssh via le web (je vous le recommande, moins de configuration, et je ne vous aiderai pas sur ce point 😉)
Utilisez les identifiants et mot de passes que vous venez de définir pour pouvoir vous connecter.
Installer symfony en ssh
Première chose que nous allons faire c'est nous rendre dans le dossier www
car c'est le root de notre web server.
Supprimez tous les dossiers présent dans ce dossier et tapez la commande d'installation de symfony :
composer create-project symfony/skeleton .
Ici le point dit à composer que l'on veut installer symfony dans le dossier courant
Une fois fini, nous allons devoir installer le pack apache de symfony :
composer require symfony/apache-pack
Nous installons ce pack pour nous faciliter la vie, always data utilise apache et ce pack nous donnes presque tous les fichiers necessaires !
Créez ensuite un fichier .htaccess
à la racine de votre site (on le rapelle c'est le dossier www
), contenant les informations suivantes
<IfModule mod_rewrite.c>
RewriteEngine On
# use public as starting point
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Ici nous renvoyons notre utilisateur vers /public là où est notre point d'entrée symfony
Allez désormais sur votre site, et là TADAM ! Une page symfony qui montre que symfony tourne !
Vous avez plus qu'à installer vos paquets composer, créer un utilisateur à votre base, poser vos fichiers en FTP et lancer vos migrations !
Protip always data : En haut à gauche, ils ont toujours un petit encart expliquant comment se connecter à leurs services en fonction de la page où vous êtes, vous trouverez beaucoup d'informations utiles dedans donc n'hésitez pas !
⚠️ Attention quand vous faites les migration ne faites pas un
make:migration
avant, sinon ça va vous créer des erreurs, appliquez les migrations avecdotrine:migrations:migrate
, ça mettra directement votre base à niveau !
Always data a une interface php my admin, au cas où vous en avez besoin, vous vous sentirez comme chez vous 😏
Mais pas si vite 😏
Il nous reste une petite chose à faire : modifier le fichier .env
Dans ce fichier, modifiez les éléments suivants :
- APP_ENV doit être en
prod
et non plus endev
- APP_SECRET doit être changé par une chaîne aléatoire (coucou ce site de génération de mot de passes)
- DATABASE_URL pour référencer la base de données créé sur always data
N'oubliez pas de chauffer le cache, avec la commande
cache:clear
, ça aide un peu le site !
Une fois fait, vous avez complété votre mise en ligne, 🎊🎉 bravo à vous ! 🎉🎊
Partir d'un site déjà existant
Vous avez déjà votre site, et vous n'avez pas envie d'installer symfony et de faire toutes les étapes citées ci dessus ? Nous avons la solution !
Pour un site déjà existant, il va falloir d'abord uploader les sources via FTP (et pour l'amour de dieu, n'envoyez pas le dossier vendor
, on va le réinstaller depuis le serveur), dans le dossier www
.
N'oubliez pas de supprimer
index.html
danswww
, car il ne nous sert à rien ici
Connectez vous en ssh, faites un composer install
pour réinstaller le dossier vendor.
Ajoutez le pack apache comme dit précédement, et le fichier .htaccess
à la racine de votre serveur.
Changez les variables dans le ficher .env
et votre site devrait normalement fonctionner !
Si vous avez des erreurs sur votre site, installez le debug pack
et / ou allez voir les logs du serveur en ssh dans le dossier admin/logs
, vous devriez trouver la raison du bug ici !
Conclusion
Vous savez désormais tout ce qu'il faut pour déployer un site sur un serveur php !
Vous avez donc désormais toutes les compétences pour développer et mettre en ligne votre site, ce qui marque la fin du cours !
Ce cours marque seulement les bases de symfony, je vous conseille d'aller un peu plus loin, beaucoup de ressources permettent de voir d'avantage de choses et surtout de manière plus pointue. (Notamment au niveau sécurité, gestion des utilisateurs, etc que nous n'avons pas abordé ici)
En espérant que vous avez pris plasir à apprendre le framework Symfony ! 👋