Hvordan distribuere Ghost v0.11 LTS på Ubuntu 16.04

Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden utgivelsen i 2013. Det setter fokus på innhold og blogging. Det mest attraktive med Ghost er dens enkle, rene og responsive design. Du kan skrive blogginnleggene dine fra en mobiltelefon. Innhold for Ghost er skrevet med Markdown-språket. Ghost passer perfekt for enkeltpersoner eller små grupper av forfattere.

I denne guiden skal vi sette opp og distribuere en sikker Ghost v0.11.x LTS- blogg på en Ubuntu 16.04 LTS VPS ved å bruke Let's Encrypt , Certbot , Node.js , NPM , NGINX og MySQL .

Krav

  • Registrer (kjøp) et domenenavn.
  • Ubuntu server 16.04 serverforekomst med minimum 1 GB RAM .
  • Sudo bruker.

Før du begynner

  1. Opprett en ny ikke-root brukerkonto:

    adduser johndoe --gecos "John Doe"
    
  2. Gjør den til superbruker ved å legge den til i sudogruppen:

    usermod -aG sudo johndoe
    
  3. Bytt til ny bruker:

    su - johndoe
    
  4. Oppdater operativsystemets programvare:

    sudo apt update && sudo apt upgrade -y
    
  5. Sett opp tidssonen:

    sudo dpkg-reconfigure tzdata
    
  6. Installer nødvendige verktøy:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. Start systemet på nytt om nødvendig:

    sudo shutdown -r now
    

Installer Certbot

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

Vi skal bruke Let's Encrypt CA og EFF sin Certbot-klient for å få SSL/TLS- sertifikat for Ghost-bloggen vår. Ikke glem å erstatte alle forekomster av blog.domain.tldmed ditt domenenavn.

  1. Installer Certbot (tidligere Let's Encrypt Client ) programvare for sertifikatbehandling laget med Python:

    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. Sjekk Certbot-versjonen:

    certbot --version
    # certbot 0.14.2
    
  3. Skaff RSA- sertifikat ved å bruke frittstående autentiseringsmetode (plugin):

    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. . . .
    #  . . .
    

    Etter å ha gått gjennom tidligere trinn, vil sertifikatet og den private nøkkelen din være i /etc/letsencrypt/live/blog.domain.tldkatalogen.

Installer Node.js og NPM

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

Ghost er bygget på Node.js. Vi skal installere den anbefalte versjonen for Ghost som er v6 Boron LTSi skrivende stund.

  1. Last ned og installer Node.js v6 LTS:

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Sjekk Node.js og NPM-versjonen:

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

Installer MySQL

Som standard kommer Ghost konfigurert til å bruke en SQLite-database, som ikke krever noen konfigurasjon.

Alternativt kan Ghost også brukes med en MySQL-database ved å endre databasekonfigurasjonen. Du må opprette en database og bruker først, du kan deretter endre den eksisterende sqlite3-konfigurasjonen.

  1. Last ned og installer 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. Sjekk MySQL-versjonen:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Sjekk om MySQL-demonen har startet og kjører:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Kjør mysql_secure_installationskriptet for å sikre databasen din litt:

    sudo mysql_secure_installation
    
  5. Logg på MySQL som root-bruker:

    mysql -u root -p
    # Enter password:
    
  6. Opprett en ny MySQL-database og bruker:

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

    exit
    

Installer NGINX

  1. Last ned og installer den nyeste hovedlinjeversjonen av NGINX fra det offisielle NGINX-depotet:

    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. Bekreft at den er installert ved å sjekke NGINX-versjonen:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Sjekk status, aktiver og start NGINX-tjenesten (demon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Opprett /etc/nginx/sslkatalog og generer en ny Diffie-Hellman ( DH ) gruppe:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Opprett loggkatalog for blog.domain.tldvirtuell vert:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Konfigurer NGINX som en HTTP ( S ) omvendt proxy-server:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Lim inn følgende i /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. Lagre og test NGINX-konfigurasjonen for syntaksfeil:

    sudo nginx -t
    
  9. Last inn NGINX-konfigurasjonen på nytt:

    sudo systemctl reload nginx.service
    

Installer Ghost

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

  1. Opprett dokumentrotkatalog:

    sudo mkdir -p /var/www/
    
  2. Opprett en ny ghostbruker:

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

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Pakk ut Ghost i /var/www/ghostkatalogen (anbefalt installasjonssted):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Flytt til den nye ghostkatalogen:

    cd /var/www/ghost
    
  6. Endre eierskapet til /var/www/ghostkatalogen:

    sudo chown -R ghost:ghost .
    
  7. Bytt til ny ghostbruker:

    sudo su - ghost
    
  8. Naviger til dokumentroten /var/www/ghost:

    cd /var/www/ghost
    
  9. Installer Ghost kun med produksjonsavhengigheter. Når dette er fullført, er Ghost installert:

    npm install --production
    
  10. Konfigurer Ghost ved å endre url, mailog databaseegenskapen til productionobjektet inne i config.jsfilen:

    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. Start Ghost i produksjonsmiljø:

    npm start --production
    

    Ghost vil nå kjøre. Både blogggrensesnitt og administrasjonsgrensesnitt er sikret med HTTPS og HTTP/2 fungerer også. Du kan åpne nettleseren og besøke nettstedet på https://blog.domain.tld. Ikke glem å erstatte blog.domain.tldmed ditt domenenavn.

  12. Slå av Ghost-prosessen ved å trykke på CTRL+ Cog gå ut fra Ghost-bruker tilbake til root-bruker:

    exit
    

Kjører Ghost som en systemtjeneste

Hvis du lukker terminaløkten med VPS-en din, vil også bloggen din gå ned. Det er ikke bra. For å unngå dette skal vi bruke systemd. Det vil holde bloggen vår oppe 24/7.

  1. Opprett ghost.servicesystemd enhetsfil. Kjør sudo vim /etc/systemd/system/ghost.serviceog kopier/lim inn innholdet nedenfor:

    [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. Aktiver og start ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Sjekk ghost.servicestatus:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Naviger til https://blog.domain.tld/ghost/og opprett en Ghost-administratorbruker. Gjør dette så snart som mulig!

Konklusjon

Det er det. Vi har nå en fullt funksjonell Ghost-blogg. Serveren din leverer innhold via HTTP/2 når den støttes av klienten. Hvis du vil endre standard Ghost-tema kalt Casper til et tilpasset, kan du bare laste ned og pakke ut temaet inn i /var/www/ghost/content/themesmappen og velge det via Ghost admin-grensesnitt, som ligger på https://blog.domain.tld/ghost.


Opprette en Jekyll-blogg på Ubuntu 16.04

Opprette en Jekyll-blogg på Ubuntu 16.04

Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

Hvordan installere MODX Revolution på en FreeBSD 11 FAMP VPS

Hvordan installere MODX Revolution på en FreeBSD 11 FAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduksjon WordPress er det dominerende innholdsstyringssystemet på internett. Den driver alt fra blogger til komplekse nettsteder med dynamisk innhold

Opprette en Jekyll-blogg på CentOS 7

Opprette en Jekyll-blogg på CentOS 7

Bruker du et annet system? Jekyll er et godt alternativ til WordPress. Det krever ingen databaser, og det fungerer med et språk mange er kjent med

Hvordan installere MODX Revolution på en CentOS 7 LAMP VPS

Hvordan installere MODX Revolution på en CentOS 7 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

Installere Fork CMS på CentOS 7

Installere Fork CMS på CentOS 7

Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM

Slik installerer du Neos CMS på CentOS 7

Slik installerer du Neos CMS på CentOS 7

Neos er et innovativt innholdsstyringssystem med åpen kildekode som er flott for å lage og redigere innhold på nettet. Med forfattere og redaktører i tankene, Neo

Hvordan distribuere Ghost v0.11 LTS på CentOS 7.3

Hvordan distribuere Ghost v0.11 LTS på CentOS 7.3

Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden 201

Hvordan installere SilverStripe CMS på en FreeBSD 11 FAMP VPS

Hvordan installere SilverStripe CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? SilverStripe er et fleksibelt og utvidbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er lett

Hvordan distribuere Ghost v0.11 LTS på Fedora 25

Hvordan distribuere Ghost v0.11 LTS på Fedora 25

Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden 201

Slik distribuerer du flere Wordpress-nettsteder ved å bruke Virtualmin og Ansible på Ubuntu 16.04

Slik distribuerer du flere Wordpress-nettsteder ved å bruke Virtualmin og Ansible på Ubuntu 16.04

En vanlig bruk av en Vultr virtuell server er å være vert for Wordpress-nettsteder. Denne guiden viser deg hvordan du automatiserer konfigurasjonen av en virtuell server fra bunnen av

Sette opp Ghost Professional Publishing Platform på OpenBSD 6

Sette opp Ghost Professional Publishing Platform på OpenBSD 6

Ghost er den nyeste og beste oppkomlingen til å konkurrere med WordPress. Temautvikling er rask og enkel å lære fordi Ghost-utviklerne bestemte seg for å bruke både th

Installer og konfigurer en Ghost v1.0.0-blogg på Ubuntu 16.04

Installer og konfigurer en Ghost v1.0.0-blogg på Ubuntu 16.04

Ghost er en moderne, åpen kildekode-publiseringsplattform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet av Handlebars.js. Ghos

Hvordan installere MODX Revolution på en Fedora 26 LAMP VPS

Hvordan installere MODX Revolution på en Fedora 26 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

Hvordan installere Dotclear på Debian 9 (Stretch)

Hvordan installere Dotclear på Debian 9 (Stretch)

Bruker du et annet system? Dotclear er en veldig enkel bloggingmotor. Den er åpen kildekode og enkel å bruke. Denne opplæringen vil gå gjennom installasjonen på

Hvordan installere SilverStripe CMS på en Fedora 26 LAMP VPS

Hvordan installere SilverStripe CMS på en Fedora 26 LAMP VPS

Bruker du et annet system? SilverStripe er et fleksibelt og utvidbart gratis og åpen kildekode for enterprise-grade Content Management System (CMS) skrevet i PHP. Jeg

Installere Fork CMS på Ubuntu 16.04 LTS

Installere Fork CMS på Ubuntu 16.04 LTS

Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM

Hvordan distribuere Ghost på Debian 8.7

Hvordan distribuere Ghost på Debian 8.7

Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt mer populær blant utviklere og vanlige brukere siden utgivelsen i 2013. Jeg

Installere Fork CMS på Debian 9

Installere Fork CMS på Debian 9

Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer