Ghost è una piattaforma di blog open source che sta guadagnando popolarità tra gli sviluppatori e gli utenti ordinari dalla sua versione del 2013. Si concentra su contenuti e blog . La cosa più interessante di Ghost è il suo design semplice, pulito e reattivo. Puoi scrivere i post del tuo blog da un telefono cellulare. Il contenuto per Ghost è scritto usando il linguaggio Markdown.
In questa guida installeremo e distribuiremo un blog Ghost sicuro su un VPS CentOS 7 usando Let's Encrypt, Node.js e Nginx.
Let's Encrypt (Certbot)
Prima di iniziare questo passaggio, assicurati di aver impostato i record DNS per il tuo dominio.
Useremo Let's Encrypt Certificate Authority e il suo client Certbot per ottenere certificati TLS per il nostro blog Ghost. Non dimenticare di sostituire tutte le istanze di example.com
con il tuo nome di dominio.
-
Sistema di aggiornamento:
yum check-update && yum update
-
Installa strumenti di sviluppo:
yum groupinstall -y 'Development Tools'
-
Abilitare il repository EPEL (Pacchetti extra per Enterprise Linux).
# Certbot is packaged in EPEL (Extra Packages for Enterprise Linux). To use Certbot, you must first enable the EPEL repository.
yum install -y epel-release
-
Installa Certbot (aka client Let's Encrypt):
yum install -y certbot
-
Controlla la versione:
certbot --version
# certbot 0.9.3
-
Ottieni certificato:
certbot certonly -d example.com -d www.example.com --email [email protected] --agree-tos --standalone
Dopo aver eseguito i passaggi precedenti, il certificato e la chiave privata saranno nella /etc/letsencrypt/live/example.com
directory.
Installa NodeJS
Ghost attualmente supporta solo le versioni Node 0.12.x , 4.2+ e 6.9+ .
Installeremo la versione consigliata per Ghost che è Node v4.x argon LTS
al momento in cui scrivo.
-
Scarica e installa la versione LTS di Node.js:
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum --disablerepo "*" --enablerepo "nodesource" install -y nodejs
-
Controlla la versione di Node e NPM:
node -v && npm -v
# v4.7.2
# 2.15.11
Installa Nginx
-
Esegui vi /etc/yum.repos.d/nginx.repo
e copia / incolla le seguenti direttive e salva ed esci:
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
-
Scarica e installa Nginx:
yum install -y nginx
-
Controlla la versione di Nginx:
nginx -v
# nginx version: nginx/1.11.8
-
Avviare il processo Nginx e controllare lo stato:
systemctl start nginx
systemctl status nginx
-
Configura Nginx come proxy inverso:
vi /etc/nginx/conf.d/ghost.conf
-
Aggiungi quanto segue a /etc/nginx/conf.d/ghost.conf
:
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2368;
}
}
-
Controlla la sintassi:
nginx -t
-
Riavvia Nginx:
systemctl restart nginx
Installa Ghost
Se desideri ospitare più blog Ghost sullo stesso VPS, ogni istanza Ghost deve essere in esecuzione su una porta separata.
-
Crea webroot
directory:
mkdir -p /var/www/
-
Crea un utente Ghost:
useradd -c "Ghost Application" ghost
-
Scarica e installa Ghost:
cd /var/www
wget https://ghost.org/zip/ghost-latest.zip
unzip ghost-latest.zip -d ghost
chown -R ghost:ghost /var/www/ghost/
rm ghost-latest.zip
-
Passa ghost
all'utente:
su - ghost
-
Installa Ghost:
cd /var/www/ghost
npm install --production
-
Configura Ghost cambiando la url
proprietà production
dell'oggetto all'interno del config.js
file:
cp config.example.js config.js
vi config.js
config = {
// ### Production
// When running Ghost in the wild, use the production environment.
// Configure your URL and mail settings here
production: {
url: 'https://example.com',
...
}
...
...
-
Salva il config.js
file ed esci.
-
Avvia Ghost:
npm start --production
Ghost ora funzionerà. Sia il front-end del blog che l'interfaccia di amministrazione sono protetti con HTTPS e anche HTTP / 2 funziona. È possibile aprire il browser e visitare il sito all'indirizzo https://example.com
. Non dimenticare di sostituire example.com
con il tuo nome di dominio.
Esegui Ghost in modo persistente
Se chiudi la sessione terminale con il tuo VPS , anche il tuo blog diminuirà. Questo non è buono. Per evitare ciò, utilizzeremo il gestore processi Forever. Ciò manterrà il nostro blog attivo 24/7.
-
Passa ghost
all'utente se non sei:
su - ghost
-
Vai alla ghost
cartella
cd /var/www/ghost
-
Installa Forever Process Manager:
npm install forever
-
Aggiungi il nuovo forever
comando al tuo percorso:
echo "export PATH=/var/www/ghost/node_modules/forever/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
-
Inizia Ghost con per sempre:
NODE_ENV=production /var/www/ghost/node_modules/forever/bin/forever start index.js
A questo punto, forever
avrebbe dovuto iniziare Ghost.
-
Vai a https://example.com/ghost
e crea un account amministratore Ghost. Fallo il prima possibile. Per verificare la versione in esecuzione di Ghost, vai su https://example.com/ghost/about/
dopo aver creato l'account amministratore.
Conclusione
Questo è tutto. Ora abbiamo un blog Ghost completamente funzionale. Se vuoi cambiare il tema Ghost predefinito chiamato Casper in uno personalizzato, puoi semplicemente scaricare e decomprimere il tema nella /var/www/ghost/content/themes
cartella e selezionarlo tramite l'interfaccia di amministrazione Ghost, situata in https://example.com/ghost
.