Ghost est une puissante plateforme de publication et de blog open source, magnifiquement conçue et facile à utiliser. Ghost est écrit en javascript et utilise node.js comme environnement d'exécution. La première version de Ghost est sortie en 2013 sous licence MIT et est constamment mise à jour. Ce tutoriel montre l'installation du logiciel Ghost Blog, Node.js et Apache en tant que serveur proxy SSL sur Ubuntu 16.04.
Nodejs est un environnement d'exécution javascript open source basé sur le moteur JavaScript V8 de Chrome (v4) pour le développement d'applications Web côté serveur. Nodejs est un environnement d'exécution multiplateforme qui peut s'exécuter sur OS X, Microsoft Windows, Linux et FreeBSD. Il fournit une architecture pilotée par les événements et un modèle d'E/S non bloquant qui le rend léger et efficace pour les applications Web en temps réel. Le projet Node.js a été lancé en 2009 par Ryan Dahl et a atteint la version 6.5.0 (LTS) à ce jour.
Prérequis
- Ubuntu 16.04
- privilèges racine
Ce que nous allons faire dans ce didacticiel :
- Installer Node.js
- Installer Ghost
- Configurer Ghost
- Installez Apache et ajoutez Ghost VirtualHost
- Activer SSL pour Ghost
Étape 1 - Installer Node.js sur Ubuntu
Pour ce tutoriel, nous utiliserons nodejs v4.x. Nodejs peut être installé de différentes manières, comme l'installation à partir de la source ou l'installation à partir du référentiel Ubuntu. Je vais utiliser le dépôt nodejs de nodesecure https://deb.nodesource.com/node_4.x pour l'installation, il contient des logiciels à jour et l'utilisation d'un référentiel lui permet de mettre facilement à jour node.js ultérieurement.
Installez la clé de dépôt nodesource à l'aide de la commande ci-dessous :
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
Ajoutez ensuite le dépôt nodejs en exécutant les commandes ci-dessous :
sudo echo 'deb https://deb.nodesource.com/node_4.x xenial main' > /etc/apt/sources.list.d/nodesource.list
sudo echo 'deb-src https://deb.nodesource.com/node_4.x xenial main' >> /etc/apt/sources.list.d/nodesource.list
Mettre à jour le référentiel :
sudo apt-get update
Nous pouvons maintenant installer le package "nodejs" qui installera node.js et ses dépendances sur le serveur :
sudo apt-get install -y nodejs
Vérifiez maintenant la version de nodejs pour vous assurer que l'installation a réussi :
node --version
Vérifier la version npm :
npm --version
npm est un gestionnaire de packages pour installer, publier et gérer des programmes de nœuds.
Étape 2 - Installer le blog Ghost
Nous allons installer ghost dans le répertoire "/var/www/" et utiliser la dernière version de Ghost. Veuillez créer un nouveau répertoire "www" dans /var et entrez-le avec "cd":
mkdir -p /var/www/
cd /var/www/
Téléchargez Ghost avec la commande wget, puis extrayez-le dans un répertoire nommé "ghostblog" :
wget https://ghost.org/zip/ghost-latest.zip
unzip -d ghostblog ghost-latest.zip
REMARQUE :-d :crée automatiquement le répertoire.
Ensuite, allez dans le répertoire ghostblog et installez Ghost avec le npm commande :
cd ghostblog/
sudo npm install --production
Étape 3 - Configurer Ghost
Veuillez vous rendre dans le répertoire ghostblog, puis copier le fichier d'exemple de configuration dans "config.js"
cd /var/www/ghostblog/
cp config.example.js config.js
Ensuite, ajoutez un nouvel utilisateur "fantôme". Cet utilisateur sera poursuivi pour exécuter Ghost :
useradd -d /var/www -s /bin/bash ghost
passwd ghost
TYPE NEW PASSWORD FOR ghost USER
Remarque :
-d =Définit le répertoire personnel de l'utilisateur fantôme dans /var/www/.
-s =Définit le shell pour l'utilisateur fantôme.
Remplacez maintenant le propriétaire du répertoire d'installation fantôme par l'utilisateur "fantôme".
chown -R ghost:ghost /var/www/ghostblog
Testez le blog fantôme en exécutant la commande npm en tant qu'utilisateur fantôme. Veuillez vous connecter à l'utilisateur fantôme :
su - ghost
et allez dans le répertoire d'installation et démarrez Ghost :
cd ghostblog/
npm start --production
Ghost est installé et fonctionne sur localhost avec le port 2368. Nous pouvons le vérifier avec la commande curl :
curl -I localhost:2368
Vous pouvez voir que le fantôme est en cours d'exécution - HTTP/1.1 200 OK .
Nous exécuterons ghost as service pour faciliter le démarrage de ghost. Veuillez revenir à l'utilisateur sudo/root en tapant "exit" et créer un nouveau fichier appelé "ghost.service" dans le répertoire "/lib/systemd/system/".
cd /lib/systemd/system/
vim ghost.service
Collez le script systemd ci-dessous :
[Unit] Description=ghost After=network.target [Service] Type=simple # Ghost installation Directory WorkingDirectory=/var/www/ghostblog User=ghost Group=ghost ExecStart=/usr/bin/npm start --production ExecStop=/usr/bin/npm stop --production Restart=always SyslogIdentifier=Ghost [Install] WantedBy=multi-user.target
Ensuite, rechargez le démon systemd :
systemctl daemon-reload
Ajoutez ensuite ghost à démarrer au démarrage et démarrez ghost avec la commande systemctl :
systemctl enable ghost
systemctl start ghost
Vérifiez que le fantôme est en cours d'exécution en vérifiant le port 2368 :
netstat -plntu
Étape 4 - Installer Apache et Ghost VirtualHost
Installez apache avec la commande apt-get :
sudo apt-get install apache2
Une fois l'installation terminée, créez un nouveau fichier pour l'hôte virtuel fantôme dans le répertoire "/etc/apache2/sites-available/".
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Collez la configuration ci-dessous :
<VirtualHost *:80> #Domain Name ServerName ghostblog.me ServerAlias www.ghostblog.me #HTTP proxy/gateway server ProxyRequests off ProxyPass / http://127.0.0.1:2368/ ProxyPassReverse / http:/127.0.0.1:2368/ </VirtualHost>
Enregistrez et quittez.
Activez le module proxy HTTP dans apache avec la commande a2enmod comme indiqué ci-dessous :
sudo a2enmod proxy proxy_http
Enfin, nous devons activer l'hôte virtuel Ghost puis redémarrer apache :
sudo a2ensite ghostblog
sudo systemctl restart apache2
Redémarrez le fantôme :
sudo systemctl restart ghost
Testez en visitant le domaine :http://ghostblog.me
Étape 5 - Activer SSL pour Ghost
Pour activer SSL sur apache, assurez-vous que la bibliothèque OpenSSL est installée sur le système. Nous allons générer une nouvelle clé et un nouveau fichier crt dans le répertoire "/etc/apache2/certs". Tout d'abord, nous créons de nouveaux certificats d'annuaire :
sudo mkdir -p /etc/apache2/certs
Et générez la clé de certificat avec la commande ci-dessous :
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/certs/ghostblog.key -out /etc/apache2/certs/ghostblog.crt
Veuillez modifier l'autorisation du fichier de certificat :
sudo cd /etc/apache2/certs/
sudo chmod 600 *
Ensuite, ajoutez la configuration SSL à ghost virtualhost en modifiant le fichier "ghostblog.conf".
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Collez le nouveau script de configuration ci-dessous :
<VirtualHost *:80> ServerName ghostblog.me ServerAlias www.ghostblog.me # Force http to https Redirect permanent / https://ghostblog.me/ # ProxyRequests off # ProxyPass / http://127.0.0.1:2368/ # ProxyPassReverse / http:/127.0.0.1:2368/ </VirtualHost> <VirtualHost *:443> ServerName ghostblog.me SSLEngine on SSLCertificateFile /etc/apache2/certs/ghostblog.crt SSLCertificateKeyFile /etc/apache2/certs/ghostblog.key ProxyPass / http://127.0.0.1:2368/ ProxyPassReverse / http:/127.0.0.1:2368/ ProxyPreserveHost On RequestHeader set X-Forwarded-Proto "https" </VirtualHost>
Enregistrez le fichier et quittez vim.
Activez le module apache OpenSSL et redémarrez apache :
sudo a2enmod ssl headers
sudo systemctl restart apache2
Tests
Visitez http://ghostblog.me , et vous serez forcé d'accéder au site HTTPS/SSL de votre blog.
Ghost avec apache et SSL a été installé avec succès.
Conclusion
Nodejs est un environnement d'exécution javascript multiplateforme open source pour créer des applications Web côté serveur. Il est léger et efficace pour les applications Web en temps réel. Ghost est une plateforme de blogs écrite en Javascript pour Node.js. Ghost est magnifiquement conçu et convivial. L'interface intuitive rend ce système de blog facile à utiliser. Ghost peut être installé de manière autonome ou avec un serveur Web comme Apache ou Nginx. Vous pouvez sécuriser Ghost avec OpenSSL. Configurer Ghost avec Apache et OpenSSL est simple, il vous suffit de configurer le module apache http_proxy et de générer un certificat SSL.