Kako namestiti Ghost v0.11 LTS na Ubuntu 16.04

Ghost je odprtokodna platforma za bloganje, ki postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki od izdaje leta 2013. Osredotoča se na vsebino in bloganje. Najbolj privlačna stvar pri Ghostu je preprost, čist in odziven dizajn. Svoje objave v blogu lahko pišete iz mobilnega telefona. Vsebina za Ghost je napisana z jezikom Markdown. Ghost je kot nalašč za posameznike ali majhne skupine piscev.

V tem priročniku bomo vzpostavili in uvedli varen blog Ghost v0.11.x LTS na Ubuntu 16.04 LTS VPS z uporabo Let's Encrypt , Certbot , Node.js , NPM , NGINX in MySQL .

Zahteve

  • Registrirajte (nakupite) ime domene.
  • Primerek strežnika Ubuntu 16.04 z najmanj 1 GB RAM-a .
  • Uporabnik Sudo.

Preden začneš

  1. Ustvarite nov nekorenski uporabniški račun:

    adduser johndoe --gecos "John Doe"
    
  2. Naj bo superuporabnik tako, da ga dodate v sudoskupino:

    usermod -aG sudo johndoe
    
  3. Preklopi na novega uporabnika:

    su - johndoe
    
  4. Posodobite programsko opremo svojega operacijskega sistema:

    sudo apt update && sudo apt upgrade -y
    
  5. Nastavite časovni pas:

    sudo dpkg-reconfigure tzdata
    
  6. Namestite potrebna orodja:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. Po potrebi znova zaženite sistem:

    sudo shutdown -r now
    

Namestite Certbot

NOTE: Before starting this step, ensure that you have set DNS records for your domain.

Za pridobitev potrdila SSL/TLS za naš blog Ghost bomo uporabili Let's Encrypt CA in odjemalca Certbot EFF . Ne pozabite zamenjati vseh primerov z imenom vaše domene.blog.domain.tld

  1. Namestite programsko opremo za upravljanje potrdil Certbot (prej Let's Encrypt client ), izdelano s Pythonom:

    sudo apt update
    sudo apt install -y software-properties-common
    sudo add-apt-repository -y ppa:certbot/certbot
    sudo apt update
    sudo apt install -y certbot
    
  2. Preverite različico Certbota:

    certbot --version
    # certbot 0.14.2
    
  3. Pridobite potrdilo RSA z uporabo samostojne metode preverjanja pristnosti (vtičnika):

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --no-eff-email --agree-tos
    
    # IMPORTANT NOTES:
    #  - Congratulations! Your certificate and chain have been saved at 
       /etc/letsencrypt/live/blog.domain.tld/fullchain.pem. 
    #  Your cert will expire on YYYY-MM-DD. . . .
    #  . . .
    

    Po prejšnjih korakih bosta vaše potrdilo in zasebni ključ v /etc/letsencrypt/live/blog.domain.tldimeniku.

Namestite Node.js in NPM

NOTE: Ghost currently supports Node.js versions 4.5+ and 6.9+ only.

Ghost je zgrajen na Node.js. Namestili bomo priporočeno različico za Ghost, ki je v6 Boron LTSv času tega pisanja.

  1. Prenesite in namestite Node.js v6 LTS:

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Preverite različico Node.js in NPM:

    node -v && npm -v
    # v6.11.1
    # 3.10.10
    

Namestite MySQL

Ghost je privzeto konfiguriran za uporabo baze podatkov SQLite, ki ne zahteva konfiguracije.

Druga možnost je, da se Ghost uporablja tudi z bazo podatkov MySQL, tako da spremenite konfiguracijo baze podatkov. Najprej morate ustvariti bazo podatkov in uporabnika, nato pa lahko spremenite obstoječo konfiguracijo sqlite3.

  1. Prenesite in namestite MySQL:

    sudo apt install -y mysql-server
    

    NOTE: During the installation, you will be prompted for MySQL "root" user password. You should set a secure password for the MySQL "root" user.

  2. Preverite različico MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Preverite, ali se je demon MySQL zagnal in izvaja:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Zaženite mysql_secure_installationskript, da nekoliko zaščitite svojo bazo podatkov:

    sudo mysql_secure_installation
    
  5. Prijavite se v MySQL kot root uporabnik:

    mysql -u root -p
    # Enter password:
    
  6. Ustvarite novo bazo podatkov MySQL in uporabnika:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  7. Zapustite MySQL:

    exit
    

Namestite NGINX

  1. Prenesite in namestite najnovejšo glavno različico NGINX iz uradnega repozitorija NGINX:

    wget https://nginx.org/keys/nginx_signing.key
    sudo apt-key add nginx_signing.key
    rm nginx_signing.key
    sudo -s
    printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
    exit
    sudo apt update
    sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
    
  2. Preverite, ali je nameščen, tako da preverite različico NGINX:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Preverite stanje, omogočite in zaženite storitev NGINX (demon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Ustvarite /etc/nginx/sslimenik in ustvarite novo skupino Diffie-Hellman ( DH ):

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Ustvarite imenik dnevnika za blog.domain.tldnavideznega gostitelja:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Konfigurirajte NGINX kot povratni proxy strežnik HTTP ( S ):

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Prilepite naslednje v /etc/nginx/conf.d/ghost.conf:

    # domain: blog.domain.tld
    # public: /var/www/ghost
    
    upstream ghost_app {
        server 127.0.0.1:2368;
        keepalive 32;
    }
    
    server {
        listen [::]:80 default_server;
        listen 80 default_server;
        listen [::]:443 ssl http2 default_server;
        listen 443 ssl http2 default_server;
    
        server_name blog.domain.tld;
        root /var/www/ghost;
    
        error_log /var/log/nginx/blog.domain.tld/error.log;
        access_log /var/log/nginx/blog.domain.tld/access.log;
    
        client_max_body_size 100M;
    
        ssl_certificate /etc/letsencrypt/live/blog.domain.tld/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/blog.domain.tld/privkey.pem;
        ssl_dhparam ssl/dhparams-2048.pem;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
    
        ssl_buffer_size 4K;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50M;
        ssl_session_tickets off;
    
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/blog.domain.tld/chain.pem;
    
        resolver 8.8.8.8 8.8.4.4 valid=300s;
    
        location / {
            proxy_pass http://ghost_app;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_hide_header X-Powered-By;
    
            proxy_http_version 1.1;
            proxy_set_header Connection "";
    
        }
    }
    
  8. Shranite in preizkusite konfiguracijo NGINX za sintaksične napake:

    sudo nginx -t
    
  9. Ponovno naložite konfiguracijo NGINX:

    sudo systemctl reload nginx.service
    

Namestite Ghost

NOTE: If you want to host multiple Ghost blogs on same VPS, each Ghost instance must be running on a separate port.

  1. Ustvari korenski imenik dokumenta:

    sudo mkdir -p /var/www/
    
  2. Ustvarite novega ghostuporabnika:

    sudo adduser --shell /bin/bash --gecos 'Ghost application' --disabled-password ghost
    
  3. Prenesite Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Razpakirajte Ghost v /var/www/ghostimenik (priporočeno mesto za namestitev):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Premakni se v nov ghostimenik:

    cd /var/www/ghost
    
  6. Spremenite lastništvo /var/www/ghostimenika:

    sudo chown -R ghost:ghost .
    
  7. Preklopi na novega ghostuporabnika:

    sudo su - ghost
    
  8. Pomaknite se do korena dokumenta /var/www/ghost:

    cd /var/www/ghost
    
  9. Namestite Ghost samo s produkcijskimi odvisnostmi. Ko je to končano, je nameščen Ghost:

    npm install --production
    
  10. Konfigurirajte Ghost tako, da spremenite url, mailin databaselastnost productionpredmeta znotraj config.jsdatoteke:

    cp config.example.js config.js
    vim /var/www/ghost/config.js
    
    
    var path = require('path'),
        config;
    
    config = {
        // ### Production
        // When running Ghost in the wild, use the production environment.
        // Configure your URL and mail settings here
        production: {
            url: 'https://blog.domain.tld',
            mail: {
                transport: 'SMTP',
                options: {
                    service: 'Mailgun',
                    auth: {
                        user: '',
                        pass: ''
                    }
                }
            },
            database: {
                client: 'mysql',
                connection: {
                    host: '127.0.0.1',
                    user: 'your_database_user',
                    password: 'your_database_password',
                    database: 'your_database_name',
                    charset: 'utf8'
                },
                debug: false
            },
            // . . .
            // . . .
    

    NOTE: You should configure mail settings also. Consult the official Ghost documentation on how to do that.

  11. Zaženite Ghost v produkcijskem okolju:

    npm start --production
    

    Ghost bo zdaj tekel. Tako sprednji kot skrbniški vmesnik bloga sta zavarovana s HTTPS, HTTP/2 pa deluje tudi. Odprete lahko brskalnik in obiščete spletno mesto na naslovu https://blog.domain.tld. Ne pozabite zamenjati blog.domain.tldz imenom vaše domene.

  12. Zaustavite postopek Ghost s pritiskom na CTRL+ Cin zapustite uporabnika ghost nazaj na root uporabnika:

    exit
    

Zagon Ghost kot sistemska storitev

Če zaprete svojo terminalsko sejo s svojim VPS, se bo tudi vaš blog zmanjšal. To ni dobro. Da bi se temu izognili, bomo uporabili systemd. Tako bo naš blog aktiven 24 ur na dan.

  1. Ustvarite ghost.servicedatoteko sistemske enote. Zaženite sudo vim /etc/systemd/system/ghost.servicein kopirajte/prilepite spodnjo vsebino:

    [Unit]
    Description=Ghost - the professional publishing platform
    Documentation=https://docs.ghost.org/v0.11.9
    After=network.target
    
    [Service]
    Type=simple
    # Edit WorkingDirectory, User and Group as needed
    WorkingDirectory=/var/www/ghost
    User=ghost
    Group=ghost
    ExecStart=/usr/bin/npm start --production
    ExecStop=/usr/bin/npm stop --production
    Restart=always
    SyslogIdentifier=Ghost
    
    [Install]
    WantedBy=multi-user.target
    
  2. Omogoči in zaženi ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Preverite ghost.servicestanje:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Pomaknite se do https://blog.domain.tld/ghost/in ustvarite skrbniškega uporabnika Ghost. Naredite to čim prej!

Zaključek

To je to. Zdaj imamo popolnoma delujoč blog Ghost. Vaš strežnik dostavlja vsebino prek HTTP/2, če to podpira odjemalec. Če želite spremeniti privzeto temo Ghost, imenovano Casper, v temo po meri, lahko temo preprosto prenesete in razpakirate v /var/www/ghost/content/themesmapo ter jo izberete prek skrbniškega vmesnika Ghost, ki se nahaja na https://blog.domain.tld/ghost.


Ustvarjanje bloga Jekyll v Ubuntu 16.04

Ustvarjanje bloga Jekyll v Ubuntu 16.04

Uporaba drugega sistema? Jekyll je odlična alternativa WordPressu za bloganje ali deljenje vsebine. Ne zahteva nobenih baz podatkov in je zelo enostaven i

Kako namestiti MODX Revolution na Ubuntu 16.04 LAMP VPS

Kako namestiti MODX Revolution na Ubuntu 16.04 LAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan i

Kako namestiti MODX Revolution na FreeBSD 11 FAMP VPS

Kako namestiti MODX Revolution na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan v PHP. To i

Namestite WordPress na OpenBSD 6.2

Namestite WordPress na OpenBSD 6.2

Uvod WordPress je prevladujoči sistem za upravljanje vsebin na internetu. Poganja vse, od blogov do zapletenih spletnih mest z dinamično vsebino

Ustvarjanje bloga Jekyll na CentOS 7

Ustvarjanje bloga Jekyll na CentOS 7

Uporaba drugega sistema? Jekyll je dobra alternativa WordPressu. Ne potrebuje baz podatkov in deluje z jezikom, ki ga mnogi poznajo

Kako namestiti MODX Revolution na CentOS 7 LAMP VPS

Kako namestiti MODX Revolution na CentOS 7 LAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan i

Namestitev Fork CMS na CentOS 7

Namestitev Fork CMS na CentOS 7

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti Neos CMS na CentOS 7

Kako namestiti Neos CMS na CentOS 7

Neos je inovativen odprtokodni sistem za upravljanje vsebin, ki je odličen za ustvarjanje in urejanje spletnih vsebin. Z mislijo na avtorje in urednike, Neo

Kako namestiti Ghost v0.11 LTS na CentOS 7.3

Kako namestiti Ghost v0.11 LTS na CentOS 7.3

Uporaba drugega sistema? Ghost je odprtokodna platforma za bloganje, ki postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki od leta 201.

Namestitev Fork CMS na Fedora 28

Namestitev Fork CMS na Fedora 28

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti SilverStripe CMS na FreeBSD 11 FAMP VPS

Kako namestiti SilverStripe CMS na FreeBSD 11 FAMP VPS

Uporaba drugega sistema? SilverStripe je prilagodljiv in razširljiv odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan v PHP. To je enostavno

Kako uvesti Ghost v0.11 LTS na Fedora 25

Kako uvesti Ghost v0.11 LTS na Fedora 25

Uporaba drugega sistema? Ghost je odprtokodna platforma za bloganje, ki postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki od leta 201.

Kako namestiti več spletnih mest Wordpress z uporabo Virtualmin in Ansible v Ubuntu 16.04

Kako namestiti več spletnih mest Wordpress z uporabo Virtualmin in Ansible v Ubuntu 16.04

Običajna uporaba virtualnega strežnika Vultr je gostovanje spletnih mest Wordpress. Ta priročnik vam pokaže, kako avtomatizirati konfiguracijo navideznega strežnika od začetka

Nastavitev Ghost Professional Publishing Platform na OpenBSD 6

Nastavitev Ghost Professional Publishing Platform na OpenBSD 6

Ghost je najnovejši in največji začetnik v konkurenci WordPressu. Razvoj teme je hiter in enostaven za učenje, ker so se razvijalci Ghost odločili za uporabo obeh

Namestite in konfigurirajte blog Ghost v1.0.0 v Ubuntu 16.04

Namestite in konfigurirajte blog Ghost v1.0.0 v Ubuntu 16.04

Ghost je sodobna odprtokodna platforma za objavljanje, zgrajena na Node.js s skrbniškim odjemalcem Ember.js, API-jem JSON in API-jem za teme, ki ga poganja Handlebars.js. Ghos

Kako namestiti MODX Revolution na Fedora 26 LAMP VPS

Kako namestiti MODX Revolution na Fedora 26 LAMP VPS

Uporaba drugega sistema? MODX Revolution je hiter, prilagodljiv, razširljiv, brezplačen in odprtokoden sistem za upravljanje vsebin (CMS) za podjetja, napisan i

Kako namestiti Dotclear na Debian 9 (Raztegniti)

Kako namestiti Dotclear na Debian 9 (Raztegniti)

Uporaba drugega sistema? Dotclear je zelo preprost motor za bloganje. Je odprtokoden in enostaven za uporabo. Ta vadnica bo potekala skozi namestitev naprej

Kako namestiti SilverStripe CMS na Fedora 26 LAMP VPS

Kako namestiti SilverStripe CMS na Fedora 26 LAMP VPS

Uporaba drugega sistema? SilverStripe je prilagodljiv in razširljiv brezplačen in odprtokoden sistem za upravljanje vsebin (CMS), napisan v PHP. jaz

Namestitev Fork CMS na Ubuntu 16.04 LTS

Namestitev Fork CMS na Ubuntu 16.04 LTS

Uporaba drugega sistema? Fork je odprtokodni CMS, napisan v PHP. Izvorna koda Forks gostuje na GitHubu. Ta priročnik vam bo pokazal, kako namestiti Fork CM

Kako namestiti Ghost v Debian 8.7

Kako namestiti Ghost v Debian 8.7

Uporaba drugega sistema? Ghost je odprtokodna platforma za bloganje, ki od izdaje leta 2013 postaja vse bolj priljubljena med razvijalci in navadnimi uporabniki. jaz

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več