Ghost è una potente piattaforma di pubblicazione e blog open source dal design accattivante e facile da usare. Ghost è scritto in javascript e utilizza node.js come ambiente di runtime. La prima versione di Ghost è stata rilasciata nel 2013 sotto licenza MIT e viene costantemente aggiornata. Questo tutorial mostra l'installazione del software Ghost Blog, Node.js e Apache come server proxy SSL su Ubuntu 16.04.
Nodejs è un runtime javaScript open source basato sul motore JavaScript V8 (v4) di Chrome per lo sviluppo di applicazioni Web lato server. Nodejs è un runtime multipiattaforma che può essere eseguito su OS X, Microsoft Windows, Linux e FreeBSD. Fornisce un'architettura basata sugli eventi e un modello I/O non bloccante che lo rende leggero ed efficiente per le applicazioni Web in tempo reale. Il progetto Node.js è stato avviato nel 2009 da Ryan Dahl e ad oggi ha raggiunto la versione 6.5.0 (LTS).
Prerequisiti
- Ubuntu 16.04
- privilegi di root
Cosa faremo in questo tutorial:
- Installa Node.js
- Installa Ghost
- Configura Ghost
- Installa Apache e aggiungi Ghost VirtualHost
- Abilita SSL per Ghost
Passaggio 1- Installa Node.js su Ubuntu
Per questo tutorial, useremo nodejs v4.x. Nodejs può essere installato in molti modi diversi come l'installazione dal sorgente o l'installazione dal repository di Ubuntu. Userò il repository nodejs di nodesecure https://deb.nodesource.com/node_4.x per l'installazione, contiene software aggiornato e l'utilizzo di un repository consente di aggiornare facilmente node.js in un secondo momento.
Installa la chiave del repository nodesource con il comando seguente:
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
Quindi aggiungi il repository nodejs eseguendo i comandi seguenti:
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
Aggiorna il repository:
sudo apt-get update
Ora possiamo installare il pacchetto "nodejs" che installerà node.js e le sue dipendenze sul server:
sudo apt-get install -y nodejs
Ora controlla la versione di nodejs per assicurarti che l'installazione sia andata a buon fine:
node --version
Controlla la versione npm:
npm --version
npm è un gestore di pacchetti per installare, pubblicare e gestire i programmi dei nodi.
Passaggio 2 - Installa Ghost Blog
Installeremo ghost nella directory "/var/www/" e utilizzeremo l'ultima versione di Ghost. Crea una nuova directory "www" in /var e inseriscila con "cd":
mkdir -p /var/www/
cd /var/www/
Scarica Ghost con il comando wget, quindi estrailo in una directory chiamata "ghostblog" :
wget https://ghost.org/zip/ghost-latest.zip
unzip -d ghostblog ghost-latest.zip
NOTA :-d :crea automaticamente la directory.
Quindi vai alla directory di ghostblog e installa Ghost con npm comando:
cd ghostblog/
sudo npm install --production
Passaggio 3 - Configura Ghost
Vai alla directory ghostblog e quindi copia il file di esempio di configurazione in "config.js"
cd /var/www/ghostblog/
cp config.example.js config.js
Quindi, aggiungi un nuovo utente "fantasma". Questo utente verrà citato in giudizio per eseguire Ghost :
useradd -d /var/www -s /bin/bash ghost
passwd ghost
TYPE NEW PASSWORD FOR ghost USER
Nota:
-d =Definisce la home directory per l'utente fantasma in /var/www/.
-s =Definisce la shell per l'utente fantasma.
Ora cambia il proprietario della directory di installazione fantasma nell'utente "ghost".
chown -R ghost:ghost /var/www/ghostblog
Testare il blog fantasma eseguendo il comando npm come utente fantasma. Accedi all'utente ghost:
su - ghost
e vai alla directory di installazione e avvia Ghost:
cd ghostblog/
npm start --production
Ghost è installato ed è in esecuzione su localhost con la porta 2368. Possiamo verificarlo con il comando curl:
curl -I localhost:2368
Puoi vedere che ghost è in esecuzione - HTTP/1.1 200 OK .
Eseguiremo ghost come servizio per semplificare l'avvio di ghost. Torna all'utente sudo/root digitando "exit" e crea un nuovo file chiamato "ghost.service" nella directory "/lib/systemd/system/".
cd /lib/systemd/system/
vim ghost.service
Incolla lo script systemd di seguito:
[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
Quindi, ricarica il demone systemd:
systemctl daemon-reload
Quindi aggiungi ghost da avviare all'avvio e avvia ghost con il comando systemctl:
systemctl enable ghost
systemctl start ghost
Verifica che ghost sia in esecuzione controllando la porta 2368:
netstat -plntu
Fase 4 - Installa Apache e Ghost VirtualHost
Installa apache con il comando apt-get:
sudo apt-get install apache2
Al termine dell'installazione, creare un nuovo file per l'host virtuale fantasma nella directory "/etc/apache2/sites-available/".
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Incolla la configurazione di seguito:
<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>
Salva ed esci.
Attiva il modulo proxy HTTP in apache con il comando a2enmod come mostrato di seguito:
sudo a2enmod proxy proxy_http
Infine, dobbiamo attivare l'host virtuale Ghost e quindi riavviare Apache:
sudo a2ensite ghostblog
sudo systemctl restart apache2
Riavvia Ghost:
sudo systemctl restart ghost
Prova visitando il dominio:http://ghostblog.me
Passaggio 5 - Abilita SSL per Ghost
Per abilitare SSL su Apache, assicurati che la libreria OpenSSL sia installata sul sistema. Genereremo una nuova chiave e un file crt nella directory "/etc/apache2/certs". Per prima cosa, creiamo nuovi certificati di directory:
sudo mkdir -p /etc/apache2/certs
E genera la chiave del certificato con il comando seguente:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/certs/ghostblog.key -out /etc/apache2/certs/ghostblog.crt
Si prega di modificare l'autorizzazione del file del certificato:
sudo cd /etc/apache2/certs/
sudo chmod 600 *
Successivamente, aggiungi la configurazione SSL a ghost virtualhost modificando il file "ghostblog.conf".
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Incolla il nuovo script di configurazione di seguito:
<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>
Salva il file ed esci da vim.
Attiva il modulo Apache OpenSSL e riavvia Apache :
sudo a2enmod ssl headers
sudo systemctl restart apache2
Test
Visita http://ghostblog.me , e sarai costretto al sito HTTPS/SSL del tuo blog.
Ghost con Apache e SSL è stato installato correttamente.
Conclusione
Nodejs è un runtime javascript multipiattaforma open source per creare applicazioni web lato server. È leggero ed efficiente per applicazioni web in tempo reale. Ghost è una piattaforma di blogging scritta in Javascript per Node.js. Ghost è ben progettato e facile da usare. L'interfaccia intuitiva rende questo sistema di blog facile da usare. Ghost può essere installato standalone o con un server web come Apache o Nginx. Puoi proteggere Ghost con OpenSSL. Configurare Ghost con Apache e OpenSSL è facile, devi solo configurare il modulo http_proxy di apache e generare un certificato SSL.