Ce tutoriel vous montrera comment installer la plateforme de blogs Ghost sur le serveur Ubuntu. Ghost est un logiciel de blog open source codé en Node.js, vous permettant de créer de beaux blogs modernes. Comparé à WordPress, Ghost est léger et beaucoup plus rapide car il est conçu spécifiquement pour les blogs et n'est pas un système de gestion de contenu complet comme WordPress.
Fonctionnalités fantômes
Au moment de la rédaction de cet article, la dernière version de Ghost est la v3.2.0, sortie le 23 décembre 2019. Les fonctionnalités de Ghost sont les suivantes :
- Un éditeur basé sur Markdown vous permettant d'écrire rapidement des articles.
- Gestion de contenu simple.
- Édition collaborative avec votre équipe.
- Publication planifiée
- Analyses intégrées
- Un bon référencement intégré directement, avec un balisage sémantique, des permaliens, des sitemaps XML, des balises canoniques et des métadonnées automatiques avec des remplacements manuels.
- Compatibilité AMP (Accelerated Mobile Pages) intégrée
- Flux RSS complets, formulaires de capture d'abonnement par e-mail et intégration du webhook Slack
- Des centaines de superbes thèmes gratuits et premium sont disponibles sur le marché Ghost
- Un joli thème Capser par défaut avec prise en charge du mode sombre.
- Une application de bureau multiplateforme disponible pour Linux, Mac et Windows.
- Le plugin WordPress officiel Ghost Migrator vous permet de migrer facilement de WordPress vers Ghost.
La fondation Ghost propose un hébergement géré, mais nous verrons ici comment créer un blog Ghost auto-hébergé sur le serveur Ubuntu.
Prérequis pour l'installation de Ghost sur le serveur Ubuntu
Pour exécuter un blog Ghost, vous avez besoin d'un serveur avec au moins 1 Go de RAM. Vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur DigitalOcean. (Pour les nouveaux utilisateurs uniquement). Si vous êtes déjà un utilisateur de DigitalOcean, vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur Vultr (pour les nouveaux utilisateurs uniquement). Une fois que vous avez un compte chez DigitalOcean ou Vultr, installez Ubuntu sur votre serveur et suivez les instructions ci-dessous. Pour une meilleure compatibilité, veuillez utiliser la version LTS d'Ubuntu comme Ubuntu 18.04 ou 16.04.
Vous devez également avoir un nom de domaine. J'ai enregistré mon nom de domaine auprès de NameCheap car le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.
Remarque :J'ai installé Ghost avec un utilisateur sudo sur Ubuntu. Pour de meilleurs résultats, vous devez également suivre ce tutoriel avec un utilisateur sudo, pas root. Pour ajouter un utilisateur sudo, exécutez simplement
sudo adduser username sudo adduser username sudo
Passez ensuite au nouvel utilisateur.
su - username
Étape 1 :Mettre à jour Ubuntu
Si votre serveur n'a pas été mis à jour depuis un certain temps, exécutez la commande suivante pour mettre à jour les packages logiciels existants.
sudo apt update;sudo apt upgrade
Étape 2 :Installez Node.js sur Ubuntu
Ghost vous oblige à installer la version LTS de Node.js et ne prend pas en charge la version non-LTS. La dernière version LTS de Node.js est v12.x, mais actuellement Ghost est plus compatible avec Node.js v10.x. Ajoutez le référentiel NodeSource à l'aide de la commande ci-dessous.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
Installez ensuite Node.js.
sudo apt install nodejs
Vérifiez la version du nœud.
node -v
Exemple de sortie :
v10.18.1
Vérifier npm
version :
npm -v
Exemple de sortie :
6.13.4
Étape 3 :Installer le serveur de base de données MariaDB
prend en charge MySQL et MariaDB. MariaDB est un remplacement direct de MySQL. Il est développé par d'anciens membres de l'équipe MySQL qui craignent qu'Oracle ne transforme MySQL en un produit à source fermée. Alors installons le serveur de base de données MariaDB.
Entrez la commande suivante pour l'installer sur Ubuntu 18.04/20.04.
sudo apt install mariadb-server mariadb-client
Une fois installé, le serveur MariaDB devrait être automatiquement démarré. Utilisez systemctl pour vérifier son état.
systemctl status mariadb
Exemple de sortie :
● mariadb.service - MariaDB 10.1.34 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-09-08 11:13:27 UTC; 21s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 3473 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 505) CGroup: /system.slice/mariadb.service └─3473 /usr/sbin/mysqld
S'il ne fonctionne pas, démarrez-le avec cette commande :
sudo systemctl start mariadb
Pour permettre à MariaDB de démarrer automatiquement au démarrage du système, exécutez
sudo systemctl enable mariadb
Exécutez maintenant le script de sécurité post-installation.
sudo mysql_secure_installation
Lorsqu'il vous demande d'entrer le mot de passe root MariaDB, appuyez sur la touche Entrée car le mot de passe root n'est pas encore défini. Saisissez ensuite y
pour définir le mot de passe root pour le serveur MariaDB.
Ensuite, vous pouvez appuyer sur Entrée pour répondre à toutes les questions restantes, ce qui supprimera l'utilisateur anonyme, désactivera la connexion root à distance et supprimera la base de données de test. Cette étape est une exigence de base pour la sécurité de la base de données MariaDB. (Notez que la lettre Y
est en majuscule, ce qui signifie que c'est la réponse par défaut.)
Vérifiez les informations de version du serveur MariaDB.
mariadb --version
Sortie :
mariadb Ver 15.1 Distrib 10.1.34-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Étape 4 :Créer une base de données et un utilisateur pour Ghost
Nous devons maintenant nous connecter à la console MariaDB et créer une base de données et un utilisateur pour Ghost . Par défaut, le package MaraiDB sur Ubuntu utilise unix_socket pour authentifier la connexion de l'utilisateur, ce qui signifie essentiellement que vous pouvez utiliser le nom d'utilisateur et le mot de passe du système d'exploitation pour vous connecter à la console MariaDB. Vous pouvez donc exécuter la commande suivante pour vous connecter sans fournir de mot de passe root MariaDB.
sudo mariadb -u root
Créez une base de données pour Ghost à l'aide de la commande suivante. Je l'ai nommé ghost
, mais vous pouvez utiliser le nom de votre choix. (N'oubliez pas le point-virgule.)
create database ghost;
Entrez ensuite la commande ci-dessous pour créer un utilisateur de base de données pour Ghost et accorder tous les privilèges de la base de données fantôme à l'utilisateur.
grant all privileges on ghost.* to ghost@localhost identified by 'ghost_password';
Videz la table des privilèges pour que les modifications prennent effet, puis sortez de la console MariaDB.
flush privileges; exit;
Étape 5 :Installer le serveur Web Nginx
Ghost utilisera le serveur Web Nginx, alors exécutez la commande suivante pour l'installer à partir du référentiel Ubuntu par défaut.
sudo apt install nginx
Si vous utilisez le pare-feu UFW, vous devez également ouvrir les ports 80 et 443.
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Étape 6 :Créez un enregistrement pour le nom de domaine de votre blog
Avant d'installer Ghost, il est recommandé de créer l'enregistrement DNS A pour le nom de domaine de votre blog. L'enregistrement A pointe votre nom de domaine vers l'adresse IP de votre serveur Ubuntu.
Étape 7 :Installer Ghost
Installez Ghost-CLI.
sudo npm install [email protected] -g
Créez ensuite un répertoire (/var/www/ghost/
) pour Fantôme.
sudo mkdir -p /var/www/ghost/
Accordez des autorisations à votre compte d'utilisateur. Remplacer username
avec votre vrai nom d'utilisateur.
sudo apt install acl sudo setfacl -R -m u:username:rwx /var/www/ghost/ sudo chmod 775 /var/www/ghost
Changez maintenant le répertoire de travail en /var/www/ghost/
et installer Ghost.
cd /var/www/ghost/ ghost install
L'installation peut prendre un certain temps. Lors de l'installation, il vous sera demandé d'entrer l'URL de votre blog. Entrez quelque chose comme https://yourdomain.com
. Et vous devrez entrer le nom de la base de données MariaDB, les informations d'identification de l'utilisateur que vous avez créées à l'étape 4.
? Enter your blog URL: https://yourdomain.com ? Enter your MySQL hostname: localhost ? Enter your MySQL username: ghost ? Enter your MySQL password: ghost_password ? Enter your Ghost database name: ghost
Si vous utilisez Ubuntu 20.04 et voyez le message suivant, vous pouvez l'ignorer et continuer l'installation.
System checks failed with message: 'Linux version is not Ubuntu 16 or 18' Some features of Ghost-CLI may not work without additional configuration. For local installs we recommend using `ghost install local` instead.
Un ghost
l'utilisateur système sera automatiquement créé. Il est recommandé d'accepter de configurer Nginx et SSL, afin que votre blog soit disponible via le protocole sécurisé HTTPS. Acceptez également de configurer le service Systemd afin de pouvoir démarrer, arrêter ou redémarrer Ghost facilement.
Une fois Ghost installé avec succès, allez sur https://yourdomain.com/ghost
pour terminer la configuration. Tout d'abord, vous devez créer un compte.
Ensuite, vous pouvez inviter certains utilisateurs du personnel sur votre blog Ghost, ou vous pouvez le faire plus tard.
Étape 8 :Modifier le fichier de configuration Nginx
Par défaut, le fichier de configuration Nginx pour Ghost contient un nom de domaine. Si vous souhaitez que Nginx serve à la fois le domaine www et le domaine non-www, modifiez le fichier de configuration.
sudo nano /etc/nginx/sites-enabled/yourdomain.com.conf
Trouvez la ligne suivante
server_name yourdomain.com;
Ajoutez le domaine www.
server_name yourdomain.com www.yourdomain.com;
Enregistrez et fermez le fichier. Supprimez ensuite le /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
fichier.
sudo rm /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
Installez ensuite le client Certbot Let's Encrypt
sudo apt install certbot python3-certbot-nginx
Obtenez un certificat SSL pour le domaine www et le domaine non-www.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com
Redémarrez Nginx et vous avez terminé.
sudo systemctl restart nginx
Étape 9 :Configurer la notification par e-mail
Afin d'envoyer des e-mails depuis votre blog Ghost (pour réinitialiser le mot de passe, inviter les utilisateurs du personnel, l'inscription des membres, etc.), vous devez configurer les paramètres SMTP. Si vous souhaitez utiliser votre propre serveur de messagerie, veuillez lire le didacticiel suivant pour configurer facilement votre propre serveur de messagerie.
- Comment configurer facilement votre propre serveur de messagerie sur Ubuntu 18.04 avec iRedMail
Une fois que vous avez votre propre serveur de messagerie, modifiez le fichier de configuration de Ghost.
sudo nano /var/www/ghost/config.production.json
Par défaut, les paramètres de messagerie sont les suivants :
"mail": { "transport": "Direct" },
Modifiez-le pour utiliser SMTP.
"mail": { "transport": "SMTP", "from": "[email protected]", "options": { "service": "yourdomain.com", "host": "mail.yourdomain.com", "port": 465, "secureConnection": true, "auth": { "user": "[email protected]", "pass": "the_email_account_password" } } },
Notez que Ghost ne prend pas en charge le port 587 pour SMTP. Enregistrez et fermez le fichier. Redémarrez ensuite Ghost via le service systemd.
sudo systemctl restart ghost_yourdomain-com.service
Votre blog Ghost devrait maintenant pouvoir envoyer des e-mails.