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.

Ressources

Déployer Symfony

Déployer symfony sur un serveur Ubuntu