Ghost je moderní platforma pro publikování zdrojů postavená na platformě Node.js. Je plně přizpůsobitelný a snadno použitelný, což vám umožňuje publikovat obsah s téměř nulovou křivkou učení.
V tomto tutoriálu vám ukážeme, jak nasadit zabezpečený blog Ghost na serveru Ubuntu 18.04 pomocí Nginx jako proxy, bezplatného certifikátu Let's Encrypt SSL, nejnovější LTS verze Node.js a MySQL/MariaDB jako databázového backendu. .
Předpoklady #
Předpokladem pro sledování tohoto kurzu je:
- Podle oficiálních systémových požadavků Ghost potřebujete alespoň 1G RAM. Pokud máte server s méně než 1 GB RAM, můžete vytvořit odkládací soubor.
- Název domény odkazující na IP vašeho veřejného serveru. V tomto tutoriálu budeme používat
example.com
. - Nginx se nainstaloval podle pokynů Jak nainstalovat Nginx na Ubuntu 18.04.
- Firewall nakonfigurovaný podle pokynů v části Jak nastavit bránu firewall s UFW na Ubuntu 18.04. Ujistěte se, že porty
80
a443
jsou otevřené.
Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo.
Instalace Node.js a Yarn #
V době psaní tohoto článku je doporučená verze Node.js pro Ghost v8 carbon LTS. Nainstalujeme Node.js z úložiště NodeSource.
Povolte úložiště NodeSource pro Node.js v8 pomocí následujícího curl
příkaz:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
Nainstalujte Node.js zadáním:
sudo apt install nodejs
Další způsoby instalace najdete v naší příručce Jak nainstalovat Node.js na Ubuntu 18.04. Chcete-li nainstalovat yarnfirst, povolte úložiště Yarn ve vašem systému pomocí následujících příkazů:
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
Jakmile je úložiště povoleno, nainstalujte přízi pomocí:
sudo apt update
sudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn
Instalace MySQL #
Ghost podporuje databáze MySQL, MariaDBand SQLite. V tomto tutoriálu budeme používat MySQL, což je doporučená databáze, když spouštíte Ghost v produkčním režimu.
Nainstalujte balíček MySQL pomocí následujícího příkazu:
sudo apt install mysql-server
Spusťte mysql_secure_installation
příkaz ke zlepšení zabezpečení instalace MySQL:
sudo mysql_secure_installation
Budete požádáni o konfiguraci VALIDATE PASSWORD PLUGIN
který se používá k testování síly uživatelských hesel MySQL. Existují tři úrovně zásad ověřování hesel, nízká, střední a silná. Stiskněte ENTER
pokud nechcete nastavit plugin pro ověření hesla.
Na další výzvě budete požádáni o nastavení hesla pro uživatele root MySQL.
Jakmile nastavíte heslo root, skript vás také požádá o odstranění anonymního uživatele, omezení přístupu uživatele root k místnímu počítači a odstranění testovací databáze. Měli byste odpovědět Y
(ano) na všechny otázky.
Dále musíme změnit metodu ověřování z auth_socket
na mysql_native_password
, takže instalační program Ghost může přistupovat k našemu serveru MySQL. Chcete-li tak učinit, přihlaste se k serveru MySQL jako uživatel root:
sudo mysql
a spusťte následující dotaz, který nastaví heslo uživatele root MySQL při použití mysql_native_password
metoda:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_pasword';
FLUSH PRIVILEGES;
Ujistěte se, že jste změnili very_strong_pasword
se silným heslem.
Instalace Ghost-CLI #
Ghost nainstalujeme pomocí oficiálního nástroje Ghost CLI. Tento nástroj vám umožňuje nainstalovat nebo aktualizovat Ghost jediným příkazem.
Ghost CLI je k dispozici jako balíček npm. Následující příkaz nainstaluje Ghost CLI na váš systém Ubuntu globálně:
sudo yarn global add ghost-cli
Vytváření umístění instalace Ghost #
Stáhneme a nainstalujeme Ghost do /var/www/ghost
adresář, což je doporučené umístění instalace.
Chcete-li vytvořit adresář, zadejte:
sudo mkdir -p /var/www/ghost
Změňte vlastnictví adresáře na svého uživatele:
sudo chown $USER:$USER /var/www/ghost
$USER
je proměnná prostředí, která obsahuje vaše uživatelské jméno.
Nastavte správná oprávnění adresáře:
sudo chmod 775 /var/www/ghost
Instalace Ghost #
Nyní, když máte nainstalovaný Ghost CLI a jsou splněny všechny předpoklady, můžeme začít s instalací.
Změňte na /var/www/ghost
adresář.
cd /var/www/ghost
Chcete-li zahájit instalaci, spusťte ghost install
, která nainstaluje a nakonfiguruje Ghost, nakonfiguruje Nginx jako reverzní proxy a zabezpečí web pomocí bezplatného šifrovacího SSL certifikátu.
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
Instalační program zkontroluje váš systém a vytiskne některá varování, jak je uvedeno výše. Zadejte y
pokračujte a instalační program stáhne a nainstaluje 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
Dále budete vyzváni k nastavení adresy URL blogu a informací o MySQL. Zadejte uživatelské jméno a heslo root, které jsme nastavili v Installing MySQL
a použijte výchozí název databáze 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
Instalační program vytvoří systémového uživatele s názvem ghost
a zeptá se vás, zda si přejete vytvořit ducha MySQL uživatele, zadejte 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
Dále se vás instalační program zeptá, zda si přejete nastavit Nginx. Potvrďte zadáním 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
Jakmile je Nginx nastaven, instalační program se vás zeptá, zda chcete nastavit SSL. Potvrďte zadáním Yes
a průvodce konfigurací vás požádá o zadání vaší e-mailové adresy a poté vygeneruje bezplatný certifikát Let’s Encrypt SSL pro vaši doménu a nakonfiguruje 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
Dále se vás instalační program zeptá, zda chcete nastavit službu systemd. Zadejte Y
přijmout a instalační program vytvoří novou službu systemd nazvanou ghost_example-com a povolí její spuštění při bootování:
? 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
Nakonec instalační program nastaví databázi a zeptá se, zda chcete spustit Ghost, zadejte 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
Dokončete nastavení Ghost #
Otevřete prohlížeč, přejděte do administrátorského rozhraní Ghost na https://example.com/ghost/
a zobrazí se vám následující obrazovka:
Chcete-li začít, klikněte na Create your account
tlačítko.
Budete přesměrováni na obrazovku Vytvořit účet, kde musíte zadat název blogu a také celé jméno účtu, e-mailovou adresu a heslo:
Jakmile vyplníte podrobnosti a kliknete na Invite your team
tlačítko.
Na této obrazovce budete požádáni o zadání e-mailových adres vašich spolupracovníků. Můžete jednoduše kliknout na I'll do this later, take me to my blog!
a budete přesměrováni na řídicí panel Ghost:
Odtud můžete vytvářet nové příspěvky, přidávat uživatele a měnit konfiguraci Ghosts.