Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
symfony5:deploiement [2021/04/12 05:40] marclebrun [Fichiers sur le serveur] |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Deploiement ====== | ||
- | |||
- | Déploiement via **ssh** avec la commande **rsync**. | ||
- | |||
- | ===== Destination ===== | ||
- | |||
- | Sur le serveur, préparer le dossier de destination et changer son propriétaire. | ||
- | |||
- | <code bash> | ||
- | sudo mkdir /var/www/monprojet | ||
- | sudo chown marc:marc /var/www/monprojet | ||
- | </code> | ||
- | |||
- | ===== Script de déploiement ===== | ||
- | |||
- | <code bash deploy.sh> | ||
- | #!/bin/sh | ||
- | rsync -av \ | ||
- | ./ \ | ||
- | USER@SERVEUR:/var/www/monprojet/ \ | ||
- | --include=public/build \ | ||
- | --include=vendor \ | ||
- | --exclude-from=.gitignore \ | ||
- | --exclude=".*" | ||
- | </code> | ||
- | |||
- | ^ Ne pas oublier de terminer les chemins par des "/" ^ | ||
- | |||
- | Rendre le script exécutable : | ||
- | |||
- | <code bash> | ||
- | chmod +x deploy.sh | ||
- | </code> | ||
- | |||
- | Exécuter une première fois le script, ce qui va copier l'ensemble | ||
- | du projet sur le serveur. | ||
- | |||
- | ===== Fichiers sur le serveur ===== | ||
- | |||
- | Créer un fichier **.env** contenant au minimum : | ||
- | |||
- | <code ini .env> | ||
- | APP_ENV=prod | ||
- | APP_SECRET=<générer une chaîne de caractères aléatoires> | ||
- | |||
- | DATABASE_URL="mysql://USER:PASSWORD@127.0.0.1:3306/DBNAME?serverVersion=mariadb-10.3.25" | ||
- | </code> | ||
- | |||
- | Pour générer des chaînes aléatoires pour APP_SECRET et PASSWORD, utiliser | ||
- | la commande suivante ((Source: [[https://gist.github.com/earthgecko/3089509]])) : | ||
- | |||
- | <code bash> | ||
- | cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 | ||
- | </code> | ||
- | |||
- | La version du serveur peut être obtenue par la commande suivante : | ||
- | |||
- | <code bash> | ||
- | mariadb -V | ||
- | </code> | ||
- | |||
- | Créer un dossier **var** et changer son propriétaire et ses permissions : | ||
- | |||
- | <code bash> | ||
- | sudo mkdir var | ||
- | sudo chmod -R 777 var/ | ||
- | sudo chown -R www-data:www-data var/ | ||
- | </code> | ||
- | |||
- | ===== Base de données ===== | ||
- | |||
- | Ouvrir l'outil **mariadb** | ||
- | |||
- | <code bash> | ||
- | mariadb -u admin -p | ||
- | </code> | ||
- | |||
- | Lister les bases de données existantes : | ||
- | |||
- | <code bash> | ||
- | show databases; | ||
- | </code> | ||
- | |||
- | Lister les privileges existants : | ||
- | |||
- | <code sql> | ||
- | select user from mysql.user; | ||
- | </code> | ||
- | |||
- | Créer une nouvelle base de données : | ||
- | |||
- | <code sql> | ||
- | create database DATABASE_NAME; | ||
- | </code> | ||
- | |||
- | Créer un utilisateur ayant tous les droits sur cette base de données : | ||
- | |||
- | <code sql> | ||
- | grant all privileges on DATABASE_NAME.* TO 'USER_NAME'@'localhost' identified by 'PASSWORD'; | ||
- | </code> | ||
- | |||
- | Appliquer les privilèges : | ||
- | |||
- | <code bash> | ||
- | flush privileges; | ||
- | exit | ||
- | </code> | ||