Hur man distribuerar Ghost v0.11 LTS på Ubuntu 16.04

Ghost är en bloggplattform med öppen källkod som har vunnit popularitet bland utvecklare och vanliga användare sedan släppet 2013. Det sätter fokus på innehåll och bloggande. Det mest attraktiva med Ghost är dess enkla, rena och lyhörda design. Du kan skriva dina blogginlägg från en mobiltelefon. Innehåll för Ghost är skrivet med Markdown-språket. Ghost passar perfekt för individer eller små grupper av författare.

I den här guiden kommer vi att ställa in och distribuera en säker Ghost v0.11.x LTS- blogg på en Ubuntu 16.04 LTS VPS med hjälp av Let's Encrypt , Certbot , Node.js , NPM , NGINX och MySQL .

Krav

  • Registrera (köp) ett domännamn.
  • Ubuntu server 16.04 serverinstans med minst 1 GB RAM .
  • Sudo användare.

Innan du börjar

  1. Skapa ett nytt icke- rootanvändarkonto:

    adduser johndoe --gecos "John Doe"
    
  2. Gör den till superanvändare genom att lägga till den i sudogruppen:

    usermod -aG sudo johndoe
    
  3. Byt till ny användare:

    su - johndoe
    
  4. Uppdatera ditt operativsystems programvara:

    sudo apt update && sudo apt upgrade -y
    
  5. Ställ in tidszonen:

    sudo dpkg-reconfigure tzdata
    
  6. Installera nödvändiga verktyg:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. Starta om systemet vid behov:

    sudo shutdown -r now
    

Installera Certbot

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

Vi kommer att använda Let's Encrypt CA och EFF :s Certbot-klient för att få SSL/TLS- certifikat för vår Ghost-blogg. Glöm inte att ersätta alla instanser av blog.domain.tldmed ditt domännamn.

  1. Installera Certbot (tidigare Let's Encrypt client ) certifikathanteringsprogramvara gjord 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. Kontrollera Certbot-versionen:

    certbot --version
    # certbot 0.14.2
    
  3. Skaffa RSA- certifikat genom att använda fristående autentiseringsmetod (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. . . .
    #  . . .
    

    Efter att ha gått igenom tidigare steg kommer ditt certifikat och din privata nyckel att finnas i /etc/letsencrypt/live/blog.domain.tldkatalogen.

Installera Node.js och NPM

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

Ghost är byggt på Node.js. Vi kommer att installera den rekommenderade versionen för Ghost som är v6 Boron LTSi skrivande stund.

  1. Ladda ner och installera Node.js v6 LTS:

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Kontrollera versionen av Node.js och NPM:

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

Installera MySQL

Som standard kommer Ghost konfigurerat att använda en SQLite-databas, som inte kräver någon konfiguration.

Alternativt kan Ghost också användas med en MySQL-databas genom att ändra databaskonfigurationen. Du måste skapa en databas och användare först, du kan sedan ändra den befintliga sqlite3-konfigurationen.

  1. Ladda ner och installera 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. Kontrollera MySQL-versionen:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Kontrollera om MySQL-demonen har startat och körs:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Kör mysql_secure_installationskriptet för att säkra din databas lite:

    sudo mysql_secure_installation
    
  5. Logga in på MySQL som root-användare:

    mysql -u root -p
    # Enter password:
    
  6. Skapa en ny MySQL-databas och användare:

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

    exit
    

Installera NGINX

  1. Ladda ner och installera den senaste huvudversionen av NGINX från det officiella NGINX-förvaret:

    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. Verifiera att den är installerad genom att kontrollera NGINX-versionen:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Kontrollera status, aktivera och starta NGINX-tjänst (demon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Skapa /etc/nginx/sslkatalog och skapa en ny Diffie-Hellman ( DH ) grupp:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Skapa loggkatalog för blog.domain.tldvirtuell värd:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Konfigurera NGINX som en HTTP ( S ) omvänd proxyserver:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Klistra in följande 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. Spara och testa NGINX-konfigurationen för syntaxfel:

    sudo nginx -t
    
  9. Ladda om NGINX-konfiguration:

    sudo systemctl reload nginx.service
    

Installera Ghost

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

  1. Skapa dokumentrotkatalog:

    sudo mkdir -p /var/www/
    
  2. Skapa en ny ghostanvändare:

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

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Packa upp Ghost i /var/www/ghostkatalogen (rekommenderad installationsplats):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Flytta till den nya ghostkatalogen:

    cd /var/www/ghost
    
  6. Ändra äganderätten till /var/www/ghostkatalogen:

    sudo chown -R ghost:ghost .
    
  7. Byt till ny ghostanvändare:

    sudo su - ghost
    
  8. Navigera till dokumentroten /var/www/ghost:

    cd /var/www/ghost
    
  9. Installera Ghost endast med produktionsberoende. När detta är klart installeras Ghost:

    npm install --production
    
  10. Konfigurera Ghost genom att ändra url, mailoch databaseegendom productionföremål 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. Starta Ghost i produktionsmiljö:

    npm start --production
    

    Ghost kommer nu att springa. Både bloggens gränssnitt och administratörsgränssnitt är säkrade med HTTPS och HTTP/2 fungerar också. Du kan öppna din webbläsare och besöka webbplatsen på https://blog.domain.tld. Glöm inte att ersätta blog.domain.tldmed ditt domännamn.

  12. Stäng av Ghost-processen genom att trycka på CTRL+ Coch avsluta från ghost-användare tillbaka till root-användare:

    exit
    

Kör Ghost som en systemtjänst

Om du stänger din terminalsession med din VPS kommer din blogg också att gå ner. Det är inte bra. För att undvika detta kommer vi att använda systemd. Det kommer att hålla vår blogg uppe 24/7.

  1. Skapa ghost.servicesystemd enhetsfil. Kör sudo vim /etc/systemd/system/ghost.serviceoch kopiera/klistra in nedanstående innehåll:

    [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. Aktivera och starta ghost.service:

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

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Navigera till https://blog.domain.tld/ghost/och skapa en Ghost-adminanvändare. Gör detta så snart som möjligt!

Slutsats

Det är allt. Vi har nu en fullt fungerande Spökblogg. Din server levererar innehåll via HTTP/2 när det stöds av klienten. Om du vill ändra standardtemat för Ghost som heter Casper till ett anpassat, kan du bara ladda ner och packa upp temat i /var/www/ghost/content/themesmappen och välja det via Ghosts admingränssnitt, som finns på https://blog.domain.tld/ghost.


Skapa en Jekyll-blogg på Ubuntu 16.04

Skapa en Jekyll-blogg på Ubuntu 16.04

Använder du ett annat system? Jekyll är ett bra alternativ till WordPress för att blogga eller dela innehåll. Det kräver inga databaser och det är väldigt enkelt i

Hur man installerar MODX Revolution på en Ubuntu 16.04 LAMP VPS

Hur man installerar MODX Revolution på en Ubuntu 16.04 LAMP VPS

Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i

Skapa en Jekyll-blogg på CentOS 7

Skapa en Jekyll-blogg på CentOS 7

Använder du ett annat system? Jekyll är ett bra alternativ till WordPress. Det kräver inga databaser och det fungerar med ett språk många är bekanta med

Hur man installerar MODX Revolution på en CentOS 7 LAMP VPS

Hur man installerar MODX Revolution på en CentOS 7 LAMP VPS

Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i

Installera Fork CMS på CentOS 7

Installera Fork CMS på CentOS 7

Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM

Hur man installerar Neos CMS på CentOS 7

Hur man installerar Neos CMS på CentOS 7

Neos är ett innovativt innehållshanteringssystem med öppen källkod som är utmärkt för att skapa och redigera onlineinnehåll. Med författare och redaktörer i åtanke, Neo

Hur man distribuerar Ghost v0.11 LTS på CentOS 7.3

Hur man distribuerar Ghost v0.11 LTS på CentOS 7.3

Använder du ett annat system? Ghost är en bloggplattform med öppen källkod som har vunnit popularitet bland utvecklare och vanliga användare sedan 201

Hur man distribuerar Ghost v0.11 LTS på Fedora 25

Hur man distribuerar Ghost v0.11 LTS på Fedora 25

Använder du ett annat system? Ghost är en bloggplattform med öppen källkod som har vunnit popularitet bland utvecklare och vanliga användare sedan 201

Hur man distribuerar flera Wordpress-webbplatser med Virtualmin och Ansible på Ubuntu 16.04

Hur man distribuerar flera Wordpress-webbplatser med Virtualmin och Ansible på Ubuntu 16.04

En vanlig användning av en Vultr virtuell server är att vara värd för Wordpress-webbplatser. Den här guiden visar hur du automatiserar konfigurationen av en virtuell server från början

Konfigurera Ghost Professional Publishing Platform på OpenBSD 6

Konfigurera Ghost Professional Publishing Platform på OpenBSD 6

Ghost är den senaste och bästa uppkomlingen att konkurrera med WordPress. Temautveckling är snabb och enkel att lära sig eftersom Ghost-utvecklarna bestämde sig för att använda både th

Installera och konfigurera en Ghost v1.0.0-blogg på Ubuntu 16.04

Installera och konfigurera en Ghost v1.0.0-blogg på Ubuntu 16.04

Ghost är en modern publiceringsplattform med öppen källkod byggd på Node.js med en Ember.js-adminklient, ett JSON-API och ett tema-API som drivs av Handlebars.js. Ghos

Hur man installerar MODX Revolution på en Fedora 26 LAMP VPS

Hur man installerar MODX Revolution på en Fedora 26 LAMP VPS

Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i

Hur man installerar Dotclear på Debian 9 (Stretch)

Hur man installerar Dotclear på Debian 9 (Stretch)

Använder du ett annat system? Dotclear är en väldigt enkel bloggmotor. Det är öppen källkod och lätt att använda. Denna handledning kommer att gå igenom installationen på

Installera Fork CMS på Ubuntu 16.04 LTS

Installera Fork CMS på Ubuntu 16.04 LTS

Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM

Hur man distribuerar Ghost på Debian 8.7

Hur man distribuerar Ghost på Debian 8.7

Använder du ett annat system? Ghost är en bloggplattform med öppen källkod som vinner popularitet bland utvecklare och vanliga användare sedan lanseringen 2013. jag

Installera Fork CMS på Debian 9

Installera Fork CMS på Debian 9

Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM

Hur man installerar Typesetter CMS på CentOS 7

Hur man installerar Typesetter CMS på CentOS 7

Typesetter är ett CMS med öppen källkod skrivet i PHP fokuserat på användarvänlighet med True WYSIWYG-redigering och platt-fillagring. I den här artikeln kommer vi att installera

Konfigurera WordPress med WooCommerce på CentOS 6

Konfigurera WordPress med WooCommerce på CentOS 6

Vultr-instanser är ett bra sätt att köra din WordPress-blogg, men en mer anmärkningsvärd tillägg till WordPress är WooCommerce, ett e-handelsplugin som utökar

Installera Fork CMS på Fedora 28

Installera Fork CMS på Fedora 28

Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM

Hur man installerar MODX Revolution på en Debian 9 LAMP VPS

Hur man installerar MODX Revolution på en Debian 9 LAMP VPS

Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer