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 4.2.0 (LTS) à ce jour.
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. Ghost est sorti en 2013 sous licence MIT.
Prérequis
- Ubuntu 15.10
- 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 node.js v0.12. Node.js peut être installé à partir de la source ou du dépôt nodesource.com. Nous utiliserons le dépôt node.js https://deb.nodesource.com/node_0.12 pour l'installation.
Veuillez ajouter et mettre à jour le référentiel en exécutant la commande ci-dessous :
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
Installez ensuite node.js avec apt :
sudo apt-get install -y nodejs
Vérifiez maintenant la version de node.js :
node --version
v0.12.7
Et vérifiez la version npm :
npm --version
2.11.3
Npm est le gestionnaire de packages node.js utilisé pour installer, publier et gérer les 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 en tant que root/sudo :
cd ghostblog/
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
Ouvrez maintenant le fichier de configuration avec l'éditeur vim :
vim config.js
Dans le bloc serveur (ligne 27) , remplacez la valeur de l'hôte par 0.0.0.0 .
host = 0.0.0.0
Pour permettre l'accès au blog depuis l'extérieur. Enregistrez et quittez.
Ajoutez ensuite un nouvel utilisateur "fantôme". Cet utilisateur sera utilisé pour exécuter ghost :
sudo adduser --shell /bin/bash ghost
ENTER YOUR PASSWORD
Changez maintenant le propriétaire du répertoire d'installation fantôme pour 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 de Ghost et démarrez-le :
cd /var/www/ghostblog
npm start --production
Visitez l'IP du serveur sur le port 2368, dans mon cas :192.168.1.104:2368
Pour faciliter le démarrage de Ghost, nous allons créer un service système pour exécuter Ghost. Veuillez revenir à l'utilisateur sudo/root et créer un nouveau fichier appelé "ghost.service" dans le répertoire "/lib/systemd/system/".
sudo cd /lib/systemd/system/
sudo 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
Et enregistrez le fichier Puis rechargez le démon systemd :
sudo systemctl daemon-reload
Ajoutez le service Ghost pour qu'il démarre automatiquement au démarrage et démarrez Ghost avec la commande systemctl :
sudo systemctl enable ghost
sudo systemctl start ghost
É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". Nous créons d'abord 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 à l'hôte virtuel fantôme 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>
Sauvegardez et quittez.
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 est maintenant installé avec succès.
Conclusion
Nodejs est une runtine 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.