Symfony : Mettre en ligne - SimplonReunion/developpeur-web GitHub Wiki
Il y a différentes façon d'envoyer les fichiers en ligne une web app (en utilisant git ou par le FTP). Le choix de la technique, dépends de votre hébergeur.
Si vous avez un hébergement mutualisé basique (le moins cher). Il y a de forte chance qu'il faille passer par un logiciel FTP tel que Filezilla. Les hébergements mutualisés sont très bon marché mais ne permettent pas beaucoup de personnalisation.
Le FTP comporte beaucoup d'inconvénients :
- Ce n'est pas forcément sécurisé,
- Il faut choisir manuellement les fichier à envoyer.
- Pas de gestion de version.
Si vous avez un serveur privé (Cloud, VPS, serveur dédié, etc.) vous serez un peu plus libre et vous pourrez utiliser git.
Dans les deux cas, il ne faut pas oublier d'envoyer la base de données de votre application.
Nous allons voir ici le cas d'un serveur privé.
Serveur privé
Se connecter
Comme nous avons un VPS, on va utiliser git pour envoyer les fichiers vers le serveur.
Je vous ai envoyé des informations de connexions qui vous permettent de vous connecter à distance au serveur de production en utilisant la console et la commande SSH.
Ouvrez une console puis tapez la commande suivante en remplaçant les variables (identifiant et adresse_ip) par les valeurs se trouvant dans l'email.
ssh identifiant@adresse_ip
Ensuite, vous devez tapez le mot de passe (qui est aussi fourni).
Sous Ubuntu, si vous n'avez pas modifié les configurations de votre terminal, vous pouvez coller le mot de passe, après l'avoir copié bien sûr, en faisaint CTRL+MAJ+V.
Copier son code avec Git
Une fois connecté au serveur, vous devez cloner votre repo dans le dossier www/
git clone mon_repo www
Les fichiers et dossiers à la racine de votre web app doivent aussi se trouver à la racine du répertoire www
Droits d'accès des fichiers cache
Vos fichiers se trouvent sur le serveur. Vous allez devoir gérer les droits d'accès sur les dossiers cache pour permettre à symfony de créer, modifier, supprimer ses fichiers cache. Déplacer dans le répertoire de votre projet puis :
sudo setfacl -R -m u:www-data:rwX var/cache var/logs var/sessions
sudo setfacl -dR -m u:www-data:rwX var/cache var/logs var/sessions
Sur le serveur mis à votre disposition vous n'avez pas droit au sudo cependant la commande
symfony_cache_permission
va exécuter les 2 commandes précédentes.
Installer les vendors
Vous avez de la chance, sur l'hébergement composer est disponible. Vous allez l'utiliser pour installer les vendors.
cd www
export SYMFONY_ENV=prod
composer install --no-dev --optimize-autoloader
Installer la base de données
Après avoir exécuté la commande précédente, il vous sera demandé de fournir les informations pour se connecter à base de données. Encore une fois vous pouvez les retrouver dans l'email que je vous ai envoyé.
Laissez database_host et database_port vident
Il ne vous reste plus qu'à créer le schéma de la base de données à partir de vos entités.
php bin/console doctrine:schema:create
Pour finir, vous devez vider le cache :
php app/console cache:clear --env=prod --no-debug
Vous pouvez maintenant accéder à votre application : http://nom_de_app.simplonreunion.co
Aller plus loin
Si vous devez travailler sur des projets qui ne doivent pas être public, vous devriez peut être utilisé un repo Github privé (payant), ou un repo Gitbucket (gratuit pour 5 utilisateurs) ou installer un serveur git sur le serveur privé (gratuit et no-limit).
Gardez à l'esprit que les noms des répertoires sont propres à ce serveur et que l'environnement (php, serveur web, base de données, composer, etc.) a été déjà installé pour vous et peut changer d'un serveur à l'autre.