Cesco
Cesco

Il mio blog personale

Francesco
Author

Share


Tags


Come aggiornare Ghost alla versione 0.10.0 su WebFaction

FrancescoFrancesco

Dopo aver tribolato per tre giorni sono riuscito a scoprire come aggiornare Ghost dalla versione 0.9.0 alla versione 0.10.00 su Webfaction.
Il problema era che una volta installato, Ghost funzionava quando veniva invocato direttamente attraverso il comando npm start --production ma si rifiutava di partire in automatico sotto Forever, che permette di riavviare il server automaticamente quando si verifica un'errore ed il programma si chiuderebbe.

Ecco i passaggi per installare ghost:

  1. Su Webfaction bisogna assicurarsi di avere creato un applicazione di tipo GHOST -> 0.9.0. Ad esempio diciamo che il nome dell'applicazione creata è cesco_it_blog

  2. Accediamo via SSH al server ed andiamo nella cartella della nostra applicazione sotto /users/fmaida/webapps/cesco_it_blog, da questo momento abbreviata in ~/webapps/cesco_it_blog.

  3. Dobbiamo scaricare dal sito di ghost una copia dell'ultima release del sistema di blogging utilizzando il comando wget https://ghost.org/zip/ghost-0.10.0.zip

  4. Una volta scaricato il file zip, dobbiamo creare una cartella chiamata ghost. La lista delle cartelle dentro ~/webapps/cesco_it_blog dovrebbe essere la seguente:

bin  etc  ghost  lib  run  
  1. Entriamo nella cartella appena creata con un cd ghost

  2. Per farci un backup che non si sa mai, copiamoci da qualche parte la cartella contents che contiene il database con gli articoli, le immagini ed i temi utilizzati nel sito

  3. Fermiamo l'esecuzione del server digitando ../bin/stop

  4. Estraiamo i file dallo ZIP con il comando unzip -uo ../ghost-0.10.0.zip

  5. Ora possiamo chiamare npm per fargli installare tutte le dipendenze di cui la nuova versione di ghost avrà bisogno. Per farlo dobbiamo scrivere npm install --production

  6. Una volta installato se cerchiamo di far ripartire il server con il comando ../bin/start questo sembra funzionare ma in realtà caricando la pagina ottengo solo un errore 502 (Bad gateway). Ho bisogno di apportare una piccola modifica al file ../bin/start per farlo funzionare di nuovo.

Per scoprire questa piccola modifica ho perso tre giorni, ma alla fine l'ho trovata tutto da solo!

Ho bisogno di modificare il file ../bin/start. Per farlo digito il comando nano ../bin/start.

Il file è fatto così:

#!/bin/sh
procs=$(/home/fmaida/webapps/cesco_it_privato/bin/node /home/fmaida/webapps/cesco_it_privato/ghost/node_modules/forever/bin/forever list | grep -F /home/fmaida/webapps/cesco_it_privato/ghost/index.js)  
if [ -z "$procs" ]; then  
    cd /home/fmaida/webapps/cesco_it_privato/ghost
    NODE_ENV=production /home/fmaida/webapps/cesco_it_privato/bin/node /home/fmaida/webapps/cesco_it_privato/ghost/node_modules/forever/bin/forever start -l ~/logs/user/cesco_it_privato-forever.log -o ~/logs/user/cesco_it_privato-stdout.log -e ~/logs/user/cesco_it_privato-stderr.log -a /home/fmaida/webapps/cesco_it_privato/ghost/index.js

Devo cambiare questa riga:

NODE_ENV=production /home/fmaida/webapps/cesco_it_privato/bin/node /home/fmaida/webapps/cesco_it_privato/ghost/node_modules/forever/bin/forever start -l ~/logs/user/cesco_it_privato-forever.log -o ~/logs/user/cesco_it_privato-stdout.log -e ~/logs/user/cesco_it_privato-stderr.log -a /home/fmaida/webapps/cesco_it_privato/ghost/index.js  

con questa:

NODE_ENV=production /home/fmaida/webapps/cesco_it_privato/bin/node /home/fmaida/webapps/cesco_it_privato/ghost/node_modules/forever/bin/forever start -l ~/logs/user/cesco_it_privato-forever.log -o ~/logs/user/cesco_it_privato-stdout.log -e ~/logs/user/cesco_it_privato-stderr.log -a --sourceDir /home/fmaida/webapps/cesco_it_privato/ghost index.js  

Cosa cambia? Una sola, banalissima cosa. Anzichè dire a Forever di lanciare in modo perpetuo il file /home/fmaida/webapps/cesco_it_privato/ghost/index.js, gli dico che la directory di lavoro è /home/fmaida/webapps/cesco_it_privato/ghost attraverso il parametro --sourceDir e che all'interno di quella directory deve lanciare in modo perpetuo il file index.js.

Poi bisogna cambiare anche la prima riga da così:

procs=$(/home/fmaida/webapps/allascala_it_blog/bin/node /home/fmaida/webapps/allascala_it_blog/ghost/node_modules/forever/bin/forever list | grep -F /home/fmaida/webapps/cesco_it_privato/ghost/index.js)  

a così:

procs=$(/home/fmaida/webapps/allascala_it_blog/bin/node /home/fmaida/webapps/allascala_it_blog/ghost/node_modules/forever/bin/forever list | grep -F /home/fmaida/webapps/cesco_it_privato/bin/node)  

In questo modo il tutto FUNZIONA!

Ora posso rilanciare il server con il comando ../bin/start ed il tutto dovrebbe funzionare nuovamente con il sistema aggiornato.

Francesco
Author

Francesco

Comments