Comment installer un blog sous Ghost ?

Dans cet article je considère que vous avez déjà un serveur dédié (virtuel ou pas peu importe tant que vous êtes admin de la machine) et que vous connaissez la base de l'administration système, enfin je considère que nous travaillons tous avec des bons outils donc sous GNU/Linux (et pas Linux seulement ça fera plaisir à Richard Stallman) après peu importe la distribution (Debian, Ubuntu, Fedora...) vous adapterez en fonction de la votre. Pour la partie web, je pars du principe que vous avez un serveur apache d'installé et bien configuré.

Pour créer votre blog sous Ghost, 3 étapes sont nécessaires, installer nodejs et npm (Node Package Manager), puis installer et configurer Ghost et enfin rendre le blog accessible via apache et ses virtualhosts.

Installer NodeJs

1ère possibilité Installation de NodeJs sur Openclassrooms ou si vous préférez compilez les sources, exécutez le script suivant en root :

apt-get install python g++ make checkinstall mkdir ~/src && cd $_
wget -N http://nodejs.org/dist/node-latest.tar.gz
tar xzvf node-latest.tar.gz && cd node-v*
./configure checkinstall #(remove the "v" in front of the version number in the dialog)
dpkg -i node

Ce script est tiré de Github. Si l'installation s'est bien déroulée vous devriez pouvoir lancer $ node -v et un petit $ npm -v.
Vous devez avoir nodejs en version 0.10.* ou plus récent en stable bien sûr.

Installer Ghost

Récupérons puis dézippons Ghost en faisant dans un dossier de votre choix :
wget https://ghost.org/zip/ghost-0.3.3.zip --no-check-certificate unzip ghost-0.3.3.zip
Ensuite continuons en installant les dépendances nécessaires à Ghost, elles seront installées grâce à npm, tapez npm install --production.
Configurons maintenant Ghost, en éditant, dans le fichier config.js, la partie url et host de la section production :
// ### Production // When running Ghost in the wild, use the production environment // Configure your URL and mail settings here production: { url: 'http://VOTRENOMDEDOMAINE.fr', mail: {}, database: { client: 'sqlite3', connection: { filename: path.join(__dirname, '/content/data/ghost.db') }, debug: false }, server: { // Host to be passed to node's net.Server#listen() host: 'IPDEVOTRESERVEUR', // Port to be passed to node's net.Server#listen(), for iisnode set this to process.env.PORT port: '2368' } },

La configuration de Ghost est terminée mais le blog n'est toujours pas lancé.
Pour s'assurer que Ghost tourne en permanence sur notre serveur, il faut le lancer en tant que service. Pour cela nous allons utiliser forever, un package node (trouvé sur Ghost Guide).
Commençons par installer forever avec un $ npm install forever -g puis placez-vous dans le dossier ou vous avez dézippé Ghost et tapez $ NODE_ENV=production forever start index.js pour contrôler que votre processus est bien lancé en tant que service, faites un $ forever list si vous avez besoin par la suite de stopper ce service faites un $ forever stop index.js dans le dossier du projet Ghost.

Enjoy ;) votre projet Ghost est lancé en tant que service sur le port 2368, oui mais je n'y ai pas accès quand je tape VOTRENOMDEDOMAINE.fr. Ok donc on continue.

Rendre accessible votre nouveau blog avec apache et ses virtualhosts

Nous allons donc commencer par créer un nouveau virtualhost pour apache qui concernera uniquement votre nouveau blog Ghost. A l'intérieur de ce nouveau virtualhost écrivez :
<VirtualHost *:80> ServerName VOTRENOMDEDOMAINE.fr ServerAlias www.VOTRENOMDEDOMAINE.fr DocumentRoot /CHEMINDUPROJET/ ProxyPreserveHost on ProxyPass / http://IPDUSERVEUR:2368/ </VirtualHost>
Puis activez les 2 modules apache nécessaires avec les commandes :
$ a2enmod proxy
$ a2enmod proxy_http
Ensuite on relance le serveur apache avec un $ /etc/init.d/apache2 restart.

Votre blog doit maintenant être accessible à l'adresse : VOTRENOMDEDOMAINE.fr et voilà c'est tout pour cet article.

Libre de développer, Julien.