Déploiement via ssh avec la commande rsync.
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
#!/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.
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
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
Créer un fichier .env contenant au minimum :
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"
Pour générer des chaînes aléatoires pour APP_SECRET et PASSWORD, utiliser la commande suivante 1) :
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
php bin/console doctrine:migrations:migrate
Des dossiers ont été créés dans var/ par le user marc
sudo chown -R www-data:www-data var/
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