Ako nainštalovať Ghost CMS na nextHosting

Návody apr 13, 2020
Aktualizácia 16.6.2020 pre Ghost v3.20.0
Došlo k zmene umiestnenia config súborov. Článok bol aktualizovaný.

Dnes si ukážeme, ako na našom nextHostingu nainštalujeme v pár krokoch blogovacie CMS Ghost 3.

Ghost je aktuálne najpopulárnejšie CMS postavené na Node.js. Je to vhodná alternatíva pre WordPress, pričom vďaka Node.js jeho tvorcovia udávajú, že je až 19x rýchlejší ako spomínaný WordPress.

V prvom krku sa prihlásime na cPanel, kde vyberieme možnosť Setup Node.js App.

Setup Node.js App

Nasledovne sa dostaneme do prehľadu Node.js aplikácií ktoré bežia na našom účte. V pravom hornom rohu vyberieme Create Application.

V ďalšom kroku nie je nutné vypĺňať všetky údaje, stačia tie, ktoré uvádzam na ďalšom screenshote tj. Application Root bude absolútna cesta do adresára, kde chcete mať svoj Ghost nainštalovaný. V mojom prípade sa jedná o /home/exon/blog.exon.io

Application URL je doména, alebo subdoména, na ktorej bude Ghost bežať. V tomto prípade som vybral blog.exon.io

Nič iné nie je nutné vypĺňať. Nasledovne v pravo hore odklikneme Create.

Po úspešnom založení aplikácie uvidíte v jej prehľade jednu potrebnú informáciu.
Tou je cesta na Virtual Enviroment pre daný projekt. Kliknutím na cestu skopírujete tent príkaz. V mojom prípade je to

source /home/exon/nodevenv/blog.exon.io/10/bin/activate && cd /home/exon/blog.exon.io

Po prihlásení na SSH našeho nextHostingu, a zadaním príkazu, sa dostaneme do virtuálneho enviromentu daného projektu.

Prikazom pwd si overíme, že sa nachádzame skutočne v Roote našej aplikácie.
Ak je všetko správne, nasledovným príkazom spustíme inštaláciu Ghost CLI

npm install ghost-cli@latest -g

Inštalácia zaberie pár desiatok sekúnd, maximálne pár minút, v závislosti na balíčku hostingu a vyťažení Vašeho účtu. Po úspešnej inštalácií dostanete podobný výstup do Vašeho terminálu. Pre nás je najpodstatnejšie: /home/exon/nodevenv/blog.exon.io/10/lib/bin/ghost

/home/exon/nodevenv/blog.exon.io/10/lib/bin/ghost -> /home/exon/nodevenv/blog.exon.io/10/lib/lib/node_modules/ghost-cli/bin/ghost
+ ghost-cli@1.11.0
added 363 packages from 191 contributors in 27.297s

Stále sa nachádzame v Application Roote. Overiť si to môžeme príkazom pwd.
Zložka musí byť pred inštaláciou prázdna. To môžeme vykonať príkazom

rm -rf *

Pozor! 100% sa ubezpečte, že sa nachádzate v správnej zložke. Môžete si tak nenávratne vymazať obsah, ktorý zrovna nemusí byť v zálohe :)

Nasledovne do príkazového riadku zadáme príkaz na inštaláciu Ghostu. Nechceme, aby sa inštalátor pokúšal nainštalovať MySQL atď... preto použijeme v príkaze --no-setup môj príkaz na inštaláciu vyzerá nasledovne.

/home/exon/nodevenv/blog.exon.io/10/lib/bin/ghost install local --no-setup

Po úspešnej inštalácií by mal byť výstup z Termínálu podobný tomu môjmu.

✔ Checking system Node.js version
✔ Checking current folder permissions
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v3.13.1
✔ Finishing install process

Vzhľadom na to, že LiteSpeed Passanger požaduje, aby v projekte bola zložka Public, vytvoríme ju nasledovnou sériou príkazov, pričom stále sa nachádzame v Application Root zložke.

mkdir public
chmod 755 public

Pretože Ghost sa nainštaloval do [Application root]/current, musíme v Roote vytvoriť novú node aplikáciu napr. použitím editoru nano a príkazu

nano app.js

Do tohoto súboru vložíme nasledovný obsah cez náš obľúbený editor a uložíme stlačením Ctrl+X, nasledovne Y a potvrdíme Enterom.

const app = require('./current/index.js');

Posledná úprava je nutná v configu samotného Ghostu.
V prvom kroku vytvoríme adresár príkazom:

mkdir -p ./current/core/shared/config/env

Nasledovne môžeme napríklad cez nano vytvoriť config:

nano ./current/core/shared/config/env/config.production.json 

Do konfiguračného súboru pridajte nasledovný obsah. Názov domény, meno, heslo a názov DB si upravte podľa Vás samozrejme.

{
    "url": "https://blog.exon.io",
    "database": {
        "client": "mysql",
        "connection": {
            "host": "localhost",
            "port": 3306,
            "user": "NazovUzivatelaDB",
            "password": "VaseHeslo",
            "database": "NazovDB"
        }   
    },
    "mail": {
        "transport" : "Direct",
        "from": "blog@exon.io"
    },   
    "paths": {
        "contentPath": "content/"
    },
    "logging": {
        "level": "info",
        "rotation": {
            "enabled": true
        },
        "transports": ["file", "stdout"]
    }
}

Z dôvodu bezpečnosti odporúčam pridať do .htaccess v Application Rootu nasledovnú ochranu pred čítaním súborov.

<Files "*.json">
    Order Deny,Allow
    Deny from all
</Files>

<Files "*.yaml">
    Order Deny,Allow
    Deny from all
</Files>

Vaše .htaccess by malo vyzerať obdobne ako to moje.

Ako jednu z posledných náležitostí je nutné Ghost zapnúť. To môžeme vykonať v prehľade Node.js Aplikácií na našom účte. Konkrétne tak v Actions, kde vyberieme Start.

Po otvorení domény alebo subdomény, ktorú som si vybral, uvidím Error 503, ten však po pár sekundách zmizne. Musíme len počkať, než sa aplikácia naštartuje.

Nasledovne prejdeme na https://blog.exon.io/ghost/#/setup, kde vyplníme všetky potrebné položky.

A to je, prosím pekne, všetko :) Teraz môžete, tak ako ja, napísať svoj 1. článok na Vašom novom webe, alebo blogu postavenom na Node.js a Ghost CMS

Milutin Kubik

Among with David Bolek

Co-Founder of Belightbyte

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.