Questo tutorial ti mostrerà come installare la piattaforma di blogging Ghost sul server Ubuntu. Ghost è un software di blogging open source codificato in Node.js, che ti consente di creare blog moderni e belli. Rispetto a WordPress, Ghost è leggero e molto più veloce perché è progettato specificamente per i blog e non è un sistema di gestione dei contenuti completo come WordPress.
Caratteristiche fantasma
Al momento in cui scrivo, l'ultima versione di Ghost è la v3.2.0, rilasciata il 23 dicembre 2019. Le caratteristiche di Ghost sono le seguenti:
- Un editor basato su Markdown che ti consente di scrivere rapidamente post.
- Gestione semplice dei contenuti.
- Modifica collaborativa con il tuo team.
- Pubblicazione programmata
- Analisi integrata
- Seo corretto integrato direttamente, con markup semantico, permalink, sitemap XML, tag canonici e metadati automatici con sostituzioni manuali.
- Supporto integrato AMP (Accelerated Mobile Pages)
- Feed RSS completi, moduli di acquisizione delle iscrizioni e-mail e integrazione di Slack webhook
- Centinaia di bellissimi temi gratuiti e premium sono disponibili nel mercato di Ghost
- Un accattivante tema predefinito Capser con supporto per la modalità oscura.
- Un'app desktop multipiattaforma disponibile per Linux, Mac e Windows.
- Il plug-in WordPress ufficiale di Ghost Migrator ti consente di migrare facilmente da WordPress a Ghost.
La fondazione Ghost offre hosting gestito, ma qui vedremo come creare un blog Ghost auto-ospitato sul server Ubuntu.
Prerequisiti per l'installazione di Ghost su Ubuntu Server
Per eseguire un blog Ghost, è necessario un server con almeno 1 GB di RAM. Puoi fare clic su questo link speciale per ottenere $ 50 di credito gratuito su DigitalOcean. (Solo per nuovi utenti). Se sei già un utente DigitalOcean, puoi fare clic su questo link speciale per ottenere $ 50 di credito gratuito su Vultr (solo per i nuovi utenti). Una volta che hai un account su DigitalOcean o Vultr, installa Ubuntu sul tuo server e segui le istruzioni seguenti. Per una migliore compatibilità, usa la versione LTS di Ubuntu come Ubuntu 18.04 o 16.04.
Devi anche avere un nome di dominio. Ho registrato il mio nome di dominio da NameCheap perché il prezzo è basso e offrono protezione della privacy di Whois gratuita per tutta la vita.
Nota :Ho installato Ghost con un utente sudo su Ubuntu. Per ottenere i migliori risultati, dovresti anche seguire questo tutorial con un utente sudo, non root. Per aggiungere un utente sudo, esegui semplicemente
sudo adduser username sudo adduser username sudo
Quindi passa al nuovo utente.
su - username
Passaggio 1:aggiorna Ubuntu
Se il tuo server non viene aggiornato da un po' di tempo, esegui il comando seguente per aggiornare i pacchetti software esistenti.
sudo apt update;sudo apt upgrade
Passaggio 2:installa Node.js su Ubuntu
Ghost richiede l'installazione della versione LTS di Node.js e non supporta la versione non LTS. L'ultima versione LTS di Node.js è v12.x, ma attualmente Ghost è più compatibile con Node.js v10.x. Aggiungi il repository NodeSource usando il comando seguente.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
Quindi installa Node.js.
sudo apt install nodejs
Controlla la versione del nodo.
node -v
Esempio di output:
v10.18.1
Controlla npm
versione:
npm -v
Esempio di output:
6.13.4
Fase 3:installa il server di database MariaDB
supporta MySQL e MariaDB. MariaDB è un sostituto drop-in di MySQL. È stato sviluppato da ex membri del team MySQL preoccupati che Oracle possa trasformare MySQL in un prodotto closed-source. Quindi installiamo il server del database MariaDB.
Immettere il seguente comando per installarlo su Ubuntu 18.04/20.04.
sudo apt install mariadb-server mariadb-client
Dopo l'installazione, il server MariaDB dovrebbe essere avviato automaticamente. Usa systemctl per verificarne lo stato.
systemctl status mariadb
Esempio di output:
● mariadb.service - MariaDB 10.1.34 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-09-08 11:13:27 UTC; 21s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 3473 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 505) CGroup: /system.slice/mariadb.service └─3473 /usr/sbin/mysqld
Se non è in esecuzione, avvialo con questo comando:
sudo systemctl start mariadb
Per consentire a MariaDB di avviarsi automaticamente all'avvio del sistema, esegui
sudo systemctl enable mariadb
Ora esegui lo script di sicurezza post installazione.
sudo mysql_secure_installation
Quando ti chiede di inserire la password di root di MariaDB, premi il tasto Invio poiché la password di root non è ancora impostata. Quindi inserisci y
per impostare la password di root per il server MariaDB.
Successivamente, puoi premere Invio per rispondere a tutte le domande rimanenti, che rimuoveranno l'utente anonimo, disabiliteranno l'accesso root remoto e rimuoveranno il database di test. Questo passaggio è un requisito di base per la sicurezza del database MariaDB. (Nota che la lettera Y
è in maiuscolo, il che significa che è la risposta predefinita.)
Controlla le informazioni sulla versione del server MariaDB.
mariadb --version
Uscita:
mariadb Ver 15.1 Distrib 10.1.34-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Fase 4:crea un database e un utente per Ghost
Ora dobbiamo accedere alla console MariaDB e creare un database e un utente per Ghost. Per impostazione predefinita, il pacchetto MaraiDB su Ubuntu utilizza unix_socket per autenticare l'accesso dell'utente, il che significa sostanzialmente che puoi utilizzare il nome utente e la password del sistema operativo per accedere alla console MariaDB. Quindi puoi eseguire il seguente comando per accedere senza fornire la password di root di MariaDB.
sudo mariadb -u root
Crea un database per Ghost usando il comando seguente. L'ho chiamato ghost
, ma puoi usare il nome che preferisci. (Non tralasciare il punto e virgola.)
create database ghost;
Quindi inserisci il comando seguente per creare un utente del database per Ghost e concedere tutti i privilegi del database fantasma all'utente.
grant all privileges on ghost.* to ghost@localhost identified by 'ghost_password';
Svuota la tabella dei privilegi per rendere effettive le modifiche, quindi esci dalla console di MariaDB.
flush privileges; exit;
Fase 5:installa Nginx Web Server
Ghost utilizzerà il server web Nginx, quindi esegui il seguente comando per installarlo dal repository Ubuntu predefinito.
sudo apt install nginx
Se stai utilizzando il firewall UFW, devi anche aprire le porte 80 e 443.
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Passaggio 6:crea un record per il nome di dominio del tuo blog
Prima di installare Ghost, ti consigliamo di creare il record DNS A per il nome di dominio del tuo blog. Il record A punta il tuo nome di dominio all'indirizzo IP del tuo server Ubuntu.
Passaggio 7:installa Ghost
Installa Ghost-CLI.
sudo npm install [email protected] -g
Quindi crea una directory (/var/www/ghost/
) per Ghost.
sudo mkdir -p /var/www/ghost/
Concedi le autorizzazioni al tuo account utente. Sostituisci username
con il tuo vero nome utente.
sudo apt install acl sudo setfacl -R -m u:username:rwx /var/www/ghost/ sudo chmod 775 /var/www/ghost
Ora cambia la directory di lavoro in /var/www/ghost/
e installa Ghost.
cd /var/www/ghost/ ghost install
L'installazione potrebbe richiedere del tempo. Durante l'installazione ti verrà chiesto di inserire l'URL del tuo blog. Inserisci qualcosa come https://yourdomain.com
. E dovrai inserire il nome del database MariaDB, le credenziali utente che hai creato nel passaggio 4.
? Enter your blog URL: https://yourdomain.com ? Enter your MySQL hostname: localhost ? Enter your MySQL username: ghost ? Enter your MySQL password: ghost_password ? Enter your Ghost database name: ghost
Se stai usando Ubuntu 20.04 e vedi il seguente messaggio, puoi ignorarlo e continuare l'installazione.
System checks failed with message: 'Linux version is not Ubuntu 16 or 18' Some features of Ghost-CLI may not work without additional configuration. For local installs we recommend using `ghost install local` instead.
Un ghost
l'utente di sistema verrà creato automaticamente. Ti consigliamo di accettare di configurare Nginx e SSL, così il tuo blog sarà disponibile tramite il protocollo HTTPS sicuro. Inoltre, accetta di configurare il servizio Systemd in modo da poter avviare, arrestare o riavviare Ghost facilmente.
Una volta che Ghost è stato installato correttamente, vai su https://yourdomain.com/ghost
per completare la configurazione. Innanzitutto, devi creare un account.
Quindi puoi invitare alcuni utenti dello staff sul tuo blog Ghost, oppure puoi farlo in un secondo momento.
Fase 8:modifica il file di configurazione di Nginx
Per impostazione predefinita, il file di configurazione di Nginx per Ghost contiene un nome di dominio. Se desideri che Nginx serva sia il dominio www che il dominio non www, modifica il file di configurazione.
sudo nano /etc/nginx/sites-enabled/yourdomain.com.conf
Trova la riga seguente
server_name yourdomain.com;
Aggiungi il dominio www.
server_name yourdomain.com www.yourdomain.com;
Salva e chiudi il file. Quindi elimina il /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
file.
sudo rm /etc/nginx/sites-enabled/yourdomain.com-ssl.conf
Quindi installa il client Certbot Let's Encrypt
sudo apt install certbot python3-certbot-nginx
Ottieni il certificato SSL sia per il dominio www che per il dominio non www.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com
Riavvia Nginx e il gioco è fatto.
sudo systemctl restart nginx
Passaggio 9:imposta la notifica e-mail
Per inviare e-mail dal tuo blog Ghost (per reimpostare la password, invitare utenti dello staff, iscriversi membri, ecc.), devi configurare le impostazioni SMTP. Se desideri utilizzare il tuo server di posta elettronica, leggi il seguente tutorial per configurare facilmente il tuo server di posta elettronica.
- Come configurare facilmente il tuo server di posta elettronica su Ubuntu 18.04 con iRedMail
Una volta che hai il tuo server di posta elettronica, modifica il file di configurazione di Ghost.
sudo nano /var/www/ghost/config.production.json
Per impostazione predefinita, le impostazioni della posta sono le seguenti:
"mail": { "transport": "Direct" },
Modificalo per utilizzare SMTP.
"mail": { "transport": "SMTP", "from": "[email protected]", "options": { "service": "yourdomain.com", "host": "mail.yourdomain.com", "port": 465, "secureConnection": true, "auth": { "user": "[email protected]", "pass": "the_email_account_password" } } },
Nota che Ghost non supporta la porta 587 per SMTP. Salva e chiudi il file. Quindi riavvia Ghost tramite il servizio systemd.
sudo systemctl restart ghost_yourdomain-com.service
Ora il tuo blog Ghost dovrebbe essere in grado di inviare e-mail.