Introduzione
Se il vostro intento è installare Ghost Blog su di un server in remoto continuate a leggere, altrimenti se volete installare Ghost Blog sul vostro computer locale saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.
Per connettersi al server come utente root digitare questo comando:
ssh root@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare il primo parametro:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
Siete ora connessi al vostro server, siete pronti per iniziare l'installazione di Ghost Blog.
Prerequisiti
L'installazione ufficiale di Ghost richiede il seguente stack:
- Ubuntu 18.04
- Apache - consigliato Nginx.
- Node.js - Versione 6.x / 8.x / 10.x raccomandata
- MySQL 5.5, 5.6 o 5.7 ( non > = 8.0)
- systemd
- Un server con almeno 1 GB di memoria
- Un nome di dominio registrato
Configurazione Server
Aggiungere un nuovo utente:
adduser nome_utente
Nota: l'utilizzo del nome utente ghost causa conflitti con Ghost-CLI, quindi è importante utilizzare un nome alternativo.
Per impostazione predefinita, un nuovo utente è solo nel proprio gruppo, che viene creato al momento della creazione dell'account. Per aggiungere l'utente a un nuovo gruppo, possiamo usare il comando usermod.
Assegnare i privilegi di sudo all'utente appena creato:
usermod -aG sudo nome_utente
Effettuare il login con il nuovo utente:
su - nome_utente
Assicurarsi che gli elenchi di pacchetti e i pacchetti installati siano aggiornati:
sudo apt-get update
sudo apt-get upgrade
Installare Apache2
Per installare Apache:
sudo apt-get install apache2
Installare alcuni pacchetti consigliati:
sudo apt-get install libxml2-dev
Se è ufw è attivo, abilitare le porte utilizzate da Apache:
sudo ufw allow 'Apache Full'
Attivare i moduli di apache2 consigliati:
sudo a2enmod
Dovreste ricevere un messaggio di output simile al seguente:
Your choices are: access_compat actions alias allowmethods asis auth_basic auth_digest auth_form authn_anon authn_core authn_dbd authn_dbm authn_file authn_socache authnz_fcgi authnz_ldap authz_core authz_dbd authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex buffer cache cache_disk cache_socache cgi cgid charset_lite data dav dav_fs dav_lock dbd deflate dialup dir dump_io echo env expires ext_filter file_cache filter headers heartbeat heartmonitor ident include info lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic lbmethod_heartbeat ldap log_debug log_forensic lua macro mime mime_magic mpm_event mpm_prefork mpm_worker negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_express proxy_fcgi proxy_fdpass proxy_ftp proxy_html proxy_http proxy_scgi proxy_wstunnel ratelimit reflector remoteip reqtimeout request rewrite sed session session_cookie session_crypto session_dbd setenvif slotmem_plain slotmem_shm socache_dbm socache_memcache socache_shmcb speling ssl status substitute suexec unique_id userdir usertrack vhost_alias xml2enc
**Which module(s) do you want to enable (wildcards ok)?**
Abilitare i seguenti moduli:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html
sudo a2enmod ssl
Riavviare Apache:
sudo service apache2 restart
Disabilitare il file di configurazione di default di Apache:
sudo a2dissite 000-default
Creare un nuovo file di configurazione dell'host virtuale per la nostra installazione di Ghost:
sudo nano /etc/apache2/sites-available/ghost.conf
Aggiungere le seguenti righe di codice:
<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
# Servers to proxy the connection, or
# List of application servers Usage
ProxyPass / http://localhost:2368/
ProxyPassReverse / http://localhost:2368/
ServerName tuodominio.it
ServerAlias www.tuodominio.it
</VirtualHost>
Attivare l' host virtuale:
sudo a2ensite ghost
Riavviare Apache:
sudo service apache2 restart
Se installato, fermare Nginx:
service nginx stop
Installare MySQL
Successivamente, è necessario installare MySQL per essere utilizzato come database di produzione.
sudo apt-get install mysql-server
Su Ubuntu 18.04 LTS è necessaria una password per garantire che MySQL sia compatibile con Ghost-CLI.
Accedere a MySQL:
sudo mysql
Impostare la password per l'utente root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'TUA_PASSWORD';
Uscire da MySQL:
quit
Se necessario effettuare nuovamente il login con l'utente creato precedentemente:
su - nome_utente
Installare Node.js
Sarà necessario installare una delle versioni di Node supportate da Ghost, aggiungere il repository NodeSource per Node 10:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
Adesso installare Node.js:
sudo apt-get install -y nodejs
Installare Ghost-CLI
Ghost-CLI è uno strumento a riga di comando che consente di installare e configurare Ghost in modo rapido e semplice. Il modulo npm può essere installato con npm o yarn:
sudo npm install ghost-cli@latest -g
Installare Ghost
Una volta che il server è stato configurato e ghost-cli è stato installato, è possibile installare Ghost. I seguenti passaggi sono la configurazione consigliata:
Creare una directory:
sudo mkdir -p /var/www/ghost
Impostare il proprietario della cartella:
sudo chown nome_utente:nome_utente /var/www/ghost
Impostare i permessi corretti:
sudo chmod 775 /var/www/ghost
Spostarsi di cartella:
cd /var/www/ghost
Eseguire il comando di installazione di Ghost:
ghost install
Dovreste ricevere un messaggio di avviso riguardo Nginx che non risulta installato, simile al seguente:
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
System checks failed with message: 'Missing package(s): nginx'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using
ghost install local
instead.
? Continue anyway? Yes
Ignorare il messaggio e continuare l'installazione digitando y o yes.
Se si vuole installare Ghost sul proprio pc in localhost, dare il seguente comando:
ghost install local
Per installare i certificati SSL per l'https con Let's Encrypt continuare a leggere
Durante l'installazione, la CLI richiederà una serie di domande per configurare il sito.
URL del blog
Inserisci l'URL esatto in cui la pubblicazione sarà disponibile e includi il protocollo HTTP o HTTPS. Ad esempio https://esempio.com. Ghost-CLI ti guiderà per configurare l'SSL.
Nome host MySQL
Se MySQL è installato sullo stesso server, utilizzare localhost(premere Enter per utilizzare il valore predefinito). Se MySQL è installato su un altro server, inserire il nome manualmente.
Nome utente / password MySQL
Se hai già un database MySQL esistente, inserisci il nome utente. Altrimenti, inserisci root. Quindi fornire la password per il tuo utente.
Nome del database Ghost
Inserisci il nome del tuo database. Verrà configurato automaticamente per te, a meno che tu non stia utilizzando un utente/password MySQL non root. In tal caso il database deve già esistere e disporre delle autorizzazioni corrette.
Configurare un utente "Ghost" per MySQL? (Consigliato)
Se hai fornito l'utente MySQL di root, Ghost-CLI può creare un utente MySQL personalizzato che può solo accedere / modificare il tuo nuovo database Ghost e nient'altro.
Configurare NGINX? NO (abbiamo installato Apache precedentemente)
Imposta automaticamente NGINX per consentire al tuo sito di essere visualizzato dal mondo esterno.
Configurare SSL? (In questo caso Nginx non è installato, la configurazione verrà saltata)
Se hai utilizzato un URL con https per il blog e hai già indirizzato il tuo dominio, Ghost-CLI può impostare automaticamente SSL per te utilizzando Let's Encrypt . In alternativa, puoi farlo con il comando ghost setup ssl in un secondo momento.
Inserisci la tua e-mail (In questo caso Nginx non è installato, la configurazione verrà saltata)
Per la configurazione della certificazione SSL è richiesto un indirizzo e-mail in modo da poter essere informato in caso di problemi con il certificato, anche durante il rinnovo.
Configurare systemd? (Consigliato)
systemd è lo strumento di gestione dei processi consigliato per mantenere Ghost senza problemi. Ti consigliamo di scegliere yes.
Avviare Ghost?
Scegliere yes per avviare Ghost.
Installare i certificati SSL per l'https
Aggiungiamo il repository ufficiale di Cerbot per ottenere i pacchetti più aggiornati:
sudo add-apt-repository ppa:certbot/certbot
Installare il pacchetto Certbot per Apache:
sudo apt install python-certbot-apache
Certbot utilizza il plugin di Apache per ottenere certificati SSL:
sudo certbot --apache
Spostarsi di cartella:
cd /etc/apache2/sites-available
Dovreste avere un nuovo file generato in automatico da Let's Encrypt, con scritto all'interno del nome -ssl. In questo caso ghost-le-ssl.conf.
Aprire il file:
sudo nano ghost-le-ssl.conf
Aggiungere le seguenti righe prima dell'inclusione dei file di Let's Encrypt:
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
Quindi:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@localhost
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
# Servers to proxy the connection, or
# List of application servers Usage
ProxyPass / http://localhost:2368/
ProxyPassReverse / http://localhost:2368/
ServerName TUODOMINIO.it
ServerAlias www.TUODOMINIO.it
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/TUODOMINIO.it/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/TUODOMINIO.it/privkey.pem
</VirtualHost>
</IfModule>
Salvare e chiudere il file
Riavviare Apache:
sudo service apache2 restart
Configurare Ghost con SSL
È necessario modificare l'url primario di Ghost nel suo file di configurazione principale.
Spostarsi di cartella:
cd /var/www/ghost
Aprire il seguente file:
sudo nano config.production.json
Modificare il primo parametro url assicurandosi che sia impostato con l'https:
“url”: "https://TUODOMINIO.it"
Salvare e chiudere il file.
Riavviare Ghost:
ghost restart
Manutenzione futura
Una volta che Ghost è stato configurato, è importante mantenerlo correttamente aggiornato e aggiornato. Fortunatamente, questo è relativamente facile da fare con Ghost-CLI. Esegui ghost help per un elenco di comandi disponibili o esplora la documentazione completa di Ghost-CLI.
L'installazione e la configurazione di Ghost Blog con Apache2 su Ubuntu 18.04 LTS è terminata.