====== Deploiement avec un script ====== Déploiement via **ssh** avec la commande **rsync**. ===== Destination ===== Sur le serveur, préparer le dossier de destination et changer son propriétaire. sudo mkdir /var/www/monprojet sudo chown marc:marc /var/www/monprojet ===== Script de déploiement ===== #!/bin/sh rsync -av \ ./ \ USER@SERVEUR:/var/www/monprojet/ \ --include=public/build \ --include=vendor \ --exclude-from=.gitignore \ --exclude=".*" ^ Ne pas oublier de terminer les chemins par des "/" ^ Rendre le script exécutable : chmod +x deploy.sh Exécuter une première fois le script, ce qui va copier l'ensemble du projet sur le serveur. ===== Création d'une Base de données et d'un utilisateur ===== Ouvrir l'outil **mariadb** mariadb -u admin -p Lister les bases de données existantes : show databases; Lister les privileges existants : select user from mysql.user; Créer une base de données : CREATE DATABASE `mydb`; Créer un nouvel utilisateur : CREATE USER `myuser`@`localhost` IDENTIFIED BY `mypassword`; Donner tous les droits à l'utilisateur sur cette base de données : GRANT ALL PRIVILEGES ON `mydb`.* TO `myuser`@`localhost`; Appliquer les privilèges : flush privileges; exit ===== Dossier VAR ===== Créer un dossier **var/** sudo mkdir var sudo chown -R www-data:www-data var/ sudo chmod 775 var/ Ajouter l'utilisateur **marc** au groupe **www-data** sudo usermod -aG www-data marc ===== Configuration ===== Créer un fichier **.env** contenant au minimum : APP_ENV=prod APP_SECRET= DATABASE_URL="mysql://USER:PASSWORD@127.0.0.1:3306/DBNAME?serverVersion=mariadb-10.3.25" 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]])) : cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1 La version du serveur peut être obtenue par la commande suivante : mariadb -V ===== Appliquer les migrations ===== php bin/console doctrine:migrations:migrate ===== Apache VirtualHost ===== ===== Réappliquer le propriétaire du dossier var ===== Des dossiers ont été créés dans **var/** par le user **marc** sudo chown -R www-data:www-data var/ ===== Déploiements utltérieurs ===== Sur la machine de dev, exécuter le script de déploiement. ./deploy.sh Se connecter en SSH sur le serveur. Faire un clear du cache. php bin/console cache:clear