Installation et sauvegarde de ghost CMS
Commençons par le début : Ghost est un CMS dédié au blog. Il est open source, trés simple d’utilisation et dispose de plein de fonction sympa. C’est ce que j’utilise pour ce blog. Je vais reprendre une parti de la documentation sur le sujet très bien faite.
Installation
Crée un utilisateur dédié (ne pas utiliser l’utilisateur ghost):
# exemple ghostuseradduser ghostuser# ajouter au super userusermod -aG sudo ghostuser# Then log in as the new usersu - ghostuser
Installation Nginx :
sudo apt install nginx
Installation de Mysql :
sudo apt install mariadb-server
Connexion à Mysql :
sudo mysql
Changer le mot de passe root de mysql en vous connectant à mysql :
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NouveauMotDePasse');
Créer un utilisateur ghostuser et une BDD dédié au site, ici appellé ghost pour l’exemple. Ensuite lui donner les droits sur la BDD.
GRANT USAGE ON *.* TO 'ghostuser'@localhost IDENTIFIED BY 'mypassword';CREATE DATABASE ghost;GRANT ALL privileges ON `ghost`.* TO 'ghostuser'@localhost;
Installer NodeJS :
curl -sL <https://deb.nodesource.com/setup_14.x> | sudo -E bashsudo apt-get install -y nodejs
Installation de Ghost CLI (ghost CLI va permettre de simplifier l’installation) :
sudo npm install ghost-cli@latest -g
Création du dossier du site internet :
# creation du dossier pour le sitesudo mkdir -p /var/www/sitename
# on donne les doits a l'utilsateur ghostsudo chown ghostuser:ghostuser /var/www/sitename
# les permissionssudo chmod 775 /var/www/sitename
# on va dans le dossiercd /var/www/sitename
L’avantage est que ghost-cli simplifie bien le processus.
Lancer le processus de lancement automatisé de ghost (avec l’utilisateur ghost) :
ghost install
En cas de second site ?
Se connecter à mariadb puis refaire une base de donnée :
CREATE DATABASE mondeuxiemesite;GRANT ALL privileges ON `mondeuxiemesite`.* TO 'ghostuser'@localhost;
Refaire une installation avec :
ghost install
Suivre les étapes, mais ne pas lancer tout de suite ghost, il faut modifier la conf nginx et modifier les ports :
sudo vim /etc/nginx/sites-available/mon-deuxième-site.fr.confsudo vim /etc/nginx/sites-available/la-migraine-et-moi.fr-ssl.conf
Toujours une sauvegarde
Création de l’utilisateur de backup :
GRANT USAGE ON *.* TO 'backup'@localhost IDENTIFIED BY 'mypassword';GRANT ALL privileges ON `backup`.* TO 'ghost'@localhost;FLUSH PRIVILEGES;
Création du fichier .cnf avec les logins de l’utilisateur :
vi ~/.my.cnf
[client]user=backuppassword="###"
Changement des droits sur le fichier :
chmod 600 ~/.my.cnf
#!/bin/bashnow=$(date +'%Y-%m-%d_%H-%M')echo "Making backup folder for $now"mkdir "/home/mon_utilisateur/Backups/ghost/$now"
echo "Saving ghost_prod Database Backup $now"mysqldump ghost | gzip > "/home/mon_utilisateur/Backups/ghost/$now/ghost_prod.sql.gz"
echo "Compressing content folder"tar -zcvf "/home/mon_utilisateur/Backups/ghost/$now/content.tar.gz" --absolute-names /var/www/mon_blog/content/ > /dev/null
# supprimer les backups au dela de 7 joursfind /home/mon_utilisateur/Backups/ghost -mtime +6 -exec rm -r "{}" \\;
Ajout du cronjob :
crontab -e
Activation tous les jours :
0 0 * * * /home/(USER)/Backups/backup.sh
Ensuite il suffit de récupérer le dossier de backup avec un rsync ou un scp.
La cli de ghost permet également d’autres chose comme :
ghost update # mettre à jour ghostghost restart # redemarer ghost