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.
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 !
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.
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
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.