Ghost è una moderna piattaforma di pubblicazione dei sorgenti costruita sulla piattaforma Node.js. È completamente personalizzabile e facile da usare, consentendoti di pubblicare i tuoi contenuti con una curva di apprendimento quasi nulla.
In questo tutorial ti mostreremo come distribuire un blog Ghost sicuro su un server Ubuntu 18.04 usando Nginx come proxy, certificato SSL Let's Encrypt gratuito, l'ultima versione LTS di Node.js e MySQL/MariaDB come database backend .
Prerequisiti #
Come prerequisiti per seguire questo tutorial, avrai bisogno di:
- Secondo i requisiti di sistema ufficiali di Ghost è necessario almeno 1G di RAM. Se hai un server con meno di 1 GB di RAM, puoi creare un file di scambio.
- Un nome di dominio che punta all'IP del tuo server pubblico. In questo tutorial useremo
example.com
. - Nginx installato seguendo Come installare Nginx su Ubuntu 18.04.
- Firewall configurato seguendo Come configurare un firewall con UFW su Ubuntu 18.04. Assicurati che porti
80
e443
sono aperti.
Prima di continuare con questo tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo.
Installazione di Node.js e Yarn #
Al momento della stesura di questo articolo, la versione consigliata di Node.js per Ghost è v8 carbon LTS. Installeremo Node.js dal repository NodeSource.
Abilita il repository NodeSource per Node.js v8 utilizzando il seguente curl
comando:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
Installa Node.js digitando:
sudo apt install nodejs
Per altri metodi di installazione, consulta la nostra guida Come installare Node.js su Ubuntu 18.04. Per installare yarn, abilita prima il repository Yarn sul tuo sistema con i seguenti comandi:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Una volta abilitato il repository, installa yarn con:
sudo apt update
sudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn
Installazione di MySQL #
Ghost supporta i database MySQL, MariaDB e SQLite. In questo tutorial utilizzeremo MySQL, che è il database consigliato quando esegui Ghost in modalità produzione.
Installa il pacchetto MySQL con il seguente comando:
sudo apt install mysql-server
Esegui mysql_secure_installation
comando per migliorare la sicurezza dell'installazione di MySQL:
sudo mysql_secure_installation
Ti verrà chiesto di configurare il VALIDATE PASSWORD PLUGIN
che viene utilizzato per testare la forza delle password degli utenti MySQL. Esistono tre livelli di criteri di convalida delle password, basso, medio e forte. Premi ENTER
se non desideri impostare il plug-in di convalida della password.
Al prossimo prompt ti verrà chiesto di impostare una password per l'utente root di MySQL.
Dopo aver impostato la password di root, lo script ti chiederà anche di rimuovere l'utente anonimo, limitare l'accesso dell'utente root al computer locale e rimuovere il database di test. Dovresti rispondere Y
(sì) a tutte le domande.
Quindi dobbiamo cambiare il metodo di autenticazione da auth_socket
a mysql_native_password
, in modo che il programma di installazione di Ghost possa accedere al nostro server MySQL. Per farlo, accedi al server MySQL come utente root:
sudo mysql
ed eseguire la seguente query che imposterà una password per l'utente root di MySQL quando si utilizza mysql_native_password
metodo:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_pasword';
FLUSH PRIVILEGES;
Assicurati di modificare very_strong_pasword
con una password complessa.
Installazione di Ghost-CLI #
Installeremo Ghost utilizzando l'utilità Ghost CLI ufficiale. Questa utility ti consente di installare o aggiornare Ghost con un unico comando.
Ghost CLI è disponibile come pacchetto npm. Il seguente comando installerà Ghost CLI sul tuo sistema Ubuntu a livello globale:
sudo yarn global add ghost-cli
Creazione del percorso di installazione di Ghost #
Scaricheremo e installeremo Ghost nel /var/www/ghost
directory, che è il percorso di installazione consigliato.
Per creare la directory digitare:
sudo mkdir -p /var/www/ghost
Cambia la proprietà della directory per il tuo utente:
sudo chown $USER:$USER /var/www/ghost
$USER
è una variabile di ambiente che contiene il tuo nome utente.
Imposta i permessi di directory corretti:
sudo chmod 775 /var/www/ghost
Installazione di Ghost #
Ora che Ghost CLI è installato e tutti i prerequisiti sono completi, possiamo iniziare con l'installazione.
Passa a /var/www/ghost
directory.
cd /var/www/ghost
Per avviare l'installazione, esegui ghost install
, che installerà e configurerà Ghost, configurerà Nginx come proxy inverso e proteggerà il sito con un certificato SSL crittografato gratuito.
ghost install
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? (y/N) y
Il programma di installazione verificherà il tuo sistema e stamperà alcuni avvisi come mostrato sopra. Digita y
per continuare e il programma di installazione scaricherà e installerà Ghost:
ℹ Checking operating system compatibility [skipped]
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.24.9
✔ Finishing install process
Successivamente ti verrà chiesto di impostare l'URL del tuo blog e le tue informazioni MySQL. Fornisci il nome utente e la password di root che abbiamo impostato in Installing MySQL
sezione e utilizzare il nome del database predefinito ghost_prod
.
? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
Il programma di installazione creerà un utente di sistema denominato ghost
e ti chiederà se desideri creare un utente MySQL fantasma, digita Yes
.
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user
Successivamente, il programma di installazione ti chiederà se desideri configurare Nginx. Conferma digitando Yes
.
? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.com.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx
Una volta che Nginx è configurato, il programma di installazione ti chiederà se desideri configurare SSL. Conferma digitando Yes
e la procedura guidata di configurazione ti chiederà di inserire il tuo indirizzo email e quindi genererà un certificato SSL Let's Encrypt gratuito per il tuo dominio e configurerà Nginx.
? Do you wish to set up SSL? Yes
? Enter your email (used for Let's Encrypt notifications) [email protected]
Running sudo command: mkdir -p /etc/letsencrypt
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail [email protected]
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL
Successivamente, il programma di installazione ti chiederà se desideri configurare un servizio systemd. Digita Y
per accettare e il programma di installazione creerà un nuovo servizio systemd chiamato ghost_example-com e ne consentirà l'avvio all'avvio:
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Infine, l'installatore configurerà il database e ti chiederà se vuoi avviare Ghost, digita Yes
.
Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_example-com
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_example-com
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_example-com
Running sudo command: systemctl enable ghost_example-com --quiet
✔ Starting Ghost
You can access your publication at https://example.com
Next, go to your admin interface at https://example.com/ghost/ to complete the setup of your publication
Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config
Completa la configurazione di Ghost #
Apri il browser, vai all'interfaccia di amministrazione di Ghost su https://example.com/ghost/
e ti verrà presentata la seguente schermata:
Per iniziare fai clic su Create your account
pulsante.
Verrai reindirizzato alla schermata Crea il tuo account, dove devi inserire il titolo del blog, nonché il nome completo, l'indirizzo e-mail e la password del tuo account:
Dopo aver inserito i dettagli e fare clic su Invite your team
pulsante.
In questa schermata ti verrà chiesto di inserire gli indirizzi email dei tuoi collaboratori. Puoi semplicemente fare clic su I'll do this later, take me to my blog!
link e verrai reindirizzato alla dashboard di Ghost:
Da qui puoi creare nuovi post, aggiungere utenti e modificare la configurazione di Ghosts.