====== 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