Inštalovať - nakonfigurujte Ghost na openSUSE 42.2 Leap


Čo je Ghost?

V ére Webu 2.0 sú blogy pre mnohých ľudí dôležitou súčasťou rádu a napríklad popularita WordPress a Tumblr to dokazuje.
Dnes budeme hovoriť o platforme na vytváranie a prevádzkovanie online publikácií (ako sú blogy, časopisy atď.) s názvom Ghost. Tento nástroj je open source a plne napadnuteľný, napísaný v JavaScripte a spustený na Node.js.
V tomto návode uvidíme, ako nainštalovať – nakonfigurovať Ghost na openSUSE Leap 42.2 pomocou Apache ako webového servera.

Verzia Node.js

Ghost beží nad Node.js. Presnejšie povedané, vývojári sa rozhodli podporovať iba verzie LTS. V tomto návode budeme používať verziu 4.2.x.
Aj keď to znamená, že Ghost nemôže používať najnovšie funkcie Node.js, voľba sa zdá byť rozumná, pretože im ponecháva priestor tráviť čas vytváraním nových funkcií a opravovaním chýb namiesto sledovania zmien v Node a opakovaným testovaním svojej platformy. každé vydanie.
Pre konečných používateľov a správcov to vedie k stabilnejšej a podporovanejšej platforme, ktorú mnohí považujú za príťažlivú.

Začíname – Nainštalujte Node.js a npm

Node.js verzia 4 je už dostupná v openSUSE. Ak ho chcete nainštalovať, stačí použiť

zypper

:

zypper in nodejs
The following NEW package is going to be installed:
  nodejs4

1 new package to install.
Overall download size: 3.3 MiB. Already cached: 0 B. After the operation, additional
12.7 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package nodejs4-4.6.1-3.1.x86_64        (1/1),   3.3 MiB ( 12.7 MiB unpacked)
Retrieving: nodejs4-4.6.1-3.1.x86_64.rpm ...........................[done (846.4 KiB/s)]
Checking for file conflicts: .....................................................[done]
(1/1) Installing: nodejs4-4.6.1-3.1.x86_64 .......................................[done]

Ďalej nainštalujte

npm

:

zypper in npm

Skontrolujte verziu:

npm --version
2.15.9

Inštalácia Ghost

Zmeňte adresár na

/srv/www

a stiahnite si Ghost:

cd /srv/www
wget https://ghost.org/zip/ghost-latest.zip

Rozbaľte ho do nového adresára s názvom

ghost

pomocou nasledujúceho kódu:

unzip -d ghost ghost-latest.zip

Prejdite do tohto nového adresára a nainštalujte Ghost pomocou

npm

:

cd ghost
npm install --production

Nakonfigurujte Ghost

Adresár ghost obsahuje príklad konfiguračného súboru. Použi toto.

cp config.example.js config.js

Ďalej vytvorte nového používateľa s názvom ghostusr:

useradd -d /srv/www -s /bin/bash -U ghostusr
passwd ghostusr

Nastavte tohto používateľa ako vlastníka adresára duchov:

chown -R ghostusr:ghostusr /srv/www/ghost

Teraz je možné testovať Ghost pomocou

npm

vykonaním nasledujúcich príkazov:

su - ghostusr
cd ghost
npm start --production

Výsledkom by mal byť výstup podobný tomuto:

Migrations: Creating tables...
Migrations: Creating table: posts
Migrations: Creating table: users
Migrations: Creating table: roles
Migrations: Creating table: roles_users
Migrations: Creating table: permissions
Migrations: Creating table: permissions_users
Migrations: Creating table: permissions_roles
Migrations: Creating table: permissions_apps
Migrations: Creating table: settings
Migrations: Creating table: tags
Migrations: Creating table: posts_tags
Migrations: Creating table: apps
Migrations: Creating table: app_settings
Migrations: Creating table: app_fields
Migrations: Creating table: clients
Migrations: Creating table: client_trusted_domains
Migrations: Creating table: accesstokens
Migrations: Creating table: refreshtokens
Migrations: Creating table: subscribers
Migrations: Running fixture populations
Migrations: Creating owner
Ghost is running in production... 
Your blog is now available on http://my-ghost-blog.com

Otvorte nové okno terminálu a otestujte, či Ghost efektívne beží vykonaním nasledujúceho príkazu:

curl -I localhost:2368
HTTP/1.1 200 OK
X-Powered-By: Express
Cache-Control: public, max-age=0
Content-Type: text/html; charset=utf-8
Content-Length: 4554
ETag: W/"11ca-93Do3c+nffISfn1kLrmRZg"
Vary: Accept-Encoding
Date: Mon, 13 Mar 2017 07:59:39 GMT
Connection: keep-alive

V okne terminálu so spusteným Ghostom ho zastavte zadaním CTRL+C.
Teraz vytvorte novú službu systemd:

$EDITOR /etc/systemd/system/ghost.service

A vložte tam nasledujúcu konfiguráciu:

[Unit]
Description=Ghost Blog - Publication platform
After=network.target

[Service]
Type=simple
Ghost installation Directory
WorkingDirectory=/srv/www/ghost
User=ghostusr
Group=ghostusr
ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost

[Install]
WantedBy=multi-user.target

Znovu načítať démona systemd:

systemct daemon-reload

a potom spustite novú službu:

systemctl start ghost

Skontrolujte stav:

systemctl status ghost

A ukáže nasledovné:

ghost.service - Ghost Blog - Publication platform
   Loaded: loaded (/etc/systemd/system/ghost.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2017-03-13 09:06:41 CET; 5s ago

Ak chcete, aby sa spustil pri štarte:

systemctl enable ghost

Inštalácia a konfigurácia Apache

Nainštalujte Apache 2 pomocou

zypper

:

zypper in apache2

A vytvorte nového virtuálneho hostiteľa pre Ghost:

$EDITOR /etc/apache2/sites-available/ghost.conf

Tam prilepte:

 <VirtualHost *:80> 
    #Domain Name 
    ServerName myghostblog.com 
    ServerAlias www.myghostblog.com 
 
    #HTTP proxy/gateway server 
    ProxyRequests off  
    ProxyPass / http://127.0.0.1:2368/  
    ProxyPassReverse / http:/127.0.0.1:2368/      
</VirtualHost>

Uložte a ukončite.
Aktivujte modul proxy, aktivujte Ghost a reštartujte všetko:

a2enmod proxy proxy_http
ln -s /etc/apache2/sites-available/ghost.conf /etc/apache2/sites-enabled/ghost.conf
systemctl restart apache2
systemctl restart ghost

Otvorte webový prehliadač a navštívte stránku http://localhost:2368 a:

Povoliť SSL

Vytvorte nový adresár, ktorý bude obsahovať certifikáty:

mkdir -p /etc/apache2/certs

A tam vygenerujte nový certifikát:

openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/certs/ghost.key -out /etc/apache2/certs/ghost.crt

Zmeniť povolenia:

chmod 600 /etc/apache2/certs/*

Nakoniec upravte konfiguráciu virtuálneho hostiteľa, aby ste povolili SSL:

$EDITOR /etc/apache2/sites-available/ghost.conf
<VirtualHost *:80>
    ServerName myghostblog.com
    ServerAlias www.myghostblog.com

    # Force http to https
    Redirect permanent / https://myghostblog.com/
   ProxyRequests off 
   ProxyPass / http://127.0.0.1:2368/ 
   ProxyPassReverse / http:/127.0.0.1:2368/     
</VirtualHost>

<VirtualHost *:443>

   ServerName myghostblog.com

   SSLEngine on
   SSLCertificateFile /etc/apache2/certs/ghost.crt
   SSLCertificateKeyFile /etc/apache2/certs/ghost.key

   ProxyPass / http://127.0.0.1:2368/
   ProxyPassReverse / http:/127.0.0.1:2368/
   ProxyPreserveHost   On

   RequestHeader set X-Forwarded-Proto "https"

</VirtualHost>

Uložte, ukončite a reštartujte Apache:

a2enmod ssl headers
systemctl restart apache2

Záver

Ghost je teraz v prevádzke. Prejdite na localhost:2368/ghost/ a dokončite nastavenie účtu správcu a potom začnite blogovať!