Menu

Comment déployer un projet Symfony 4 sur un FTP via SSH

Aujourd'hui le but sera de déployer votre site sur votre serveur en utilisant les protocoles FTP et SSH.

Tout d'abord, si vous êtes un débutant, je vous conseille d'utiliser PuTTY pour vous permettre d'avoir un accès simple au SSH de votre site.
Vous aurez aussi besoin de votre host, login et mot de passe pour avoir accès à ce dernier.
Vous pourrez avoir toutes ces informations auprès de votre hébergeur.
Dans ce tutoriel nous utilisons Infomaniak comme hébergeur web.
Vous devez aussi, au préalable, avoir relié votre projet sur un repository de votre GitHub.
Prenez aussi en compte que sur l'hébergeur utilisé dans ce tutoriel, Git est déjà installé.

Installation

Après vous être connecté à votre SSH, accédez au dossier où vous souhaitez déployer votre projet (Vider le au prélable pour qu'il soit vierge).

SSH
-> cd dossierDeVotreFuturProjet

Installez Composer dans ce dossier.

Attention : N'oubliez pas de modifier "php-7.1" si votre version actuelle sur votre site est différente !

SSH
-> mkdir .composer -> curl -sS https://getcomposer.org/installer | php-7.1 -d allow_url_fopen=On

Composer est maintenant disponible sur votre site.
Par defaut, "composer.phar" permait d'exécuter Composer mais pour notre utilisation changez le par "composer" :

SSH
-> mv composer.phar composer

Mise en place du projet sur notre site web

Clonez votre projet depuis GitHub.

SSH
-> git clone https://github.com/votreUser/votreProjet

Vous pourrez remarquer depuis votre FTP que votre projet s'est mis dans un dossier qui porte le nom de votre projet, déplacez tout à la racine de votre site et supprimez ce dossier qui est maintenant vide.

Retournons maintenant sur notre SSH, nous allons maintenant installer tous les composants nécessaires à notre projet.

SSH
-> php-7.1 -d allow_url_fopen=on -d memory_limit=-1 composer install

Votre projet est maintenant déployé sur votre site web !

Remarque: il se peut que pour le bon fonctionnement vous ayez besoin de supprimer le dossier /var/cache/prod. Pas d'inquiétude, il se récréera automatiquement.

Alimenter la BDD

Direction votre fichier .env à la racine de votre site depuis votre FTP.
Modifiez le en changeant :

  • "APP_ENV=dev" par "APP_ENV=prod"
  • Les paramètres de votre BDD par ceux de votre hébergeur (DATABASE_URL=...)

À présent, pour être sûr d'avoir accès à la BDD et qu'elle soit vierge, exécutez dans votre SSH :

SSH
-> php-7.1 bin/console doctrine:database:drop --force -> php-7.1 bin/console doctrine:database:create

Maintenant, installez toutes les tables nécessaires :

SSH
-> php-7.1 bin/console doctrine:schema:update --force

Votre BDD est maintenant prête.
Si vous possédez des fixtures, il ne manque plus qu'à les load.

Si certaines commandes comme celles de fixtures ne marchent pas, rendez-vous sur /config/bundles.php pour rectifier les autorisations ('all' => true).

SSH
-> php-7.1 bin/console doctrine:fixtures:load

Après toutes ces étapes, n'oubliez pas de vider votre cache.

SSH
-> php-7.1 bin/console cache:clear

Vous pouvez maintenant accéder à votre site : votresite.fr/public

Si une erreur 500 ou autre s'affiche, vous pouvez regarder vos logs dans /var/log/prod.log

Comment accéder à votre site sans le /public

Maintenant nous voulons une URL propre tel que votresite.fr, rien de plus simple :
Depuis votre hébergement web, changer le dossier où pointe votre site web, par exemple /monsite, et faites le pointer sur le dossier public comme ceci /monsite/public.

Et voilà, votre site est accessible à la racine.

Si vous remarquez des dossiers que les utilisateurs ne devraient pas avoir accès d'habitude, n'hésitez pas à modifier le .htaccess avec un "Deny from all" des dossiers voulus.



Catégorie :
Symfony 4
Vues :
3764