PRÉSENTATION DU COURS

🚀 Déployer symfony sur un serveur

Les étapes pour déployer un projet symfony en ligne sur un serveur

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 avec dotrine: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 :

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 dans www, 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 ! 👋

Envie de discuter du contenu ?

logo twitter @GarnierKristen