Sådan installeres Ghost v0.11 LTS på Debian 8

Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. Det sætter fokus på indhold og blogging. Det mest attraktive ved Ghost er dets enkle, rene og responsive design. Du kan skrive dine blogindlæg fra en mobiltelefon. Indhold til Ghost er skrevet ved hjælp af Markdown-sproget. Ghost passer perfekt til enkeltpersoner eller små grupper af forfattere.

I denne vejledning skal vi opsætte og implementere en sikker Ghost v0.11.x LTS- blog på en Debian 8 VPS ved hjælp af Let's Encrypt , Certbot , Node.js , NPM , NGINX og MySQL .

Krav

  • Registrer (køb) et domænenavn.
  • Debian 8-serverinstans med minimum 1 GB RAM .
  • Sudo bruger.

Før du begynder

  1. Tjek Debian-versionen:

    lsb_release -ds
    # Debian GNU/Linux 8.9 (jessie)
    
  2. Opret en ny ikke-root brugerkonto:

    adduser johndoe --gecos "John Doe"
    
  3. Gør det til superbruger ved at tilføje det til sudogruppen:

    usermod -aG sudo johndoe
    
  4. Skift til den nye bruger:

    su - johndoe
    
  5. Opdater dit operativsystems software:

    sudo apt-get update && sudo apt-get upgrade -y
    
  6. Indstil tidszonen:

    sudo dpkg-reconfigure tzdata
    
  7. Installer de nødvendige værktøjer:

    sudo apt-get install -y build-essential zip unzip git apt-transport-https
    
  8. Genstart systemet, hvis det kræves:

    sudo shutdown -r now
    

Installer Certbot

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

Vi kommer til at bruge Let's Encrypt CA og EFF 's Certbot-klient til at opnå SSL/TLS- certifikat til vores Ghost-blog. Glem ikke at erstatte alle forekomster af blog.domain.tldmed dit domænenavn.

  1. Installer Certbot (tidligere Let's Encrypt client ) certifikatstyringssoftware lavet med Python:

    sudo -s
    printf "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list.d/jessie-backports.list
    exit        
    sudo apt-get update
    sudo apt-get install -y certbot -t jessie-backports
    
  2. Tjek Certbot version:

    certbot --version
    # certbot 0.10.2
    
  3. Få et RSA- certifikat ved at bruge selvstændig godkendelsesmetode (plugin):

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email [email protected] --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 at have gennemgået tidligere trin, vil dit certifikat og din private nøgle være i /etc/letsencrypt/live/blog.domain.tldbiblioteket.

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 anbefalede version til Ghost, som er v6 Boron LTSpå tidspunktet for dette skrivende.

  1. Download og installer Node.js v6 LTS:

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

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

Installer MySQL

Som standard kommer Ghost konfigureret til at bruge en SQLite-database, som ikke kræver nogen konfiguration.

Alternativt kan Ghost også bruges med en MySQL-database ved at ændre databasekonfigurationen. Du skal først oprette en database og bruger, du kan derefter ændre den eksisterende sqlite3-konfiguration.

  1. Download og installer MySQL:

    sudo apt-get 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. Tjek MySQL version:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.5.57, for debian-linux-gnu (x86_64) using readline 6.3
    
  3. Tjek, om MySQL-dæmonen er startet og kører:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Kør mysql_secure_installationscriptet for at sikre din database en smule:

    sudo mysql_secure_installation
    
  5. Log ind på MySQL som root-bruger:

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

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

    exit
    

Installer NGINX

  1. Download og installer den seneste mainline-version af NGINX fra det officielle NGINX-lager:

    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/debian/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/debian/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
    exit
    sudo apt-get update
    sudo apt-get install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt nginx-nr-agent
    
  2. Bekræft, at det er installeret ved at kontrollere NGINX-versionen:

    sudo nginx -v
    # nginx version: nginx/1.13.4
    
  3. Tjek status, aktiver og start NGINX-tjenesten (dæmon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Opret /etc/nginx/sslbibliotek 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. Opret log-mappe til blog.domain.tldvirtuel vært:

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

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Indsæt 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; # Change to your domain/hostname
        root /var/www/ghost; # Change to the path where Ghost is
    
        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. Gem og test NGINX-konfigurationen for syntaksfejl:

    sudo nginx -t
    
  9. Genindlæs NGINX-konfiguration:

    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. Opret dokumentets rodmappe:

    sudo mkdir -p /var/www/
    
  2. Opret en ny ghostbruger:

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

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Pak Ghost ud i /var/www/ghostmappen (anbefalet installationsplacering):

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

    cd /var/www/ghost
    
  6. Skift ejerskab af /var/www/ghostmappen:

    sudo chown -R ghost:ghost .
    
  7. Skift til ny ghostbruger:

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

    cd /var/www/ghost
    
  9. Installer kun Ghost med produktionsafhængigheder. Når dette er fuldført, er Ghost installeret:

    npm install --production
    
  10. Indstil Ghost ved at ændre url, mailog databaseejendom af produktionen objekt inde i config.jsfil:

    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 produktionsmiljø:

    npm start --production
    

    Ghost vil nu køre. Både blogfront-end og admin-grænseflade er sikret med HTTPS, og HTTP/2 fungerer også. Du kan åbne din browser og besøge webstedet på https://blog.domain.tld. Glem ikke at erstatte blog.domain.tldmed dit domænenavn.

  12. Luk Ghost-processen ned ved at trykke på CTRL+ Cog forlad ghostbrugeren tilbage til root-brugeren:

    exit
    

Kører Ghost som en systemtjeneste

Hvis du lukker din terminalsession med din VPS, vil din blog også gå ned. Det er ikke godt. For at undgå dette skal vi bruge Systemd. Det vil holde vores blog oppe 24/7.

  1. Opret ghost.serviceSystemd enhedsfil. Kør sudo vim /etc/systemd/system/ghost.serviceog kopier/indsæt følgende indhold:

    [Unit]
    Description=Ghost - the professional publishing platform
    Documentation=https://docs.ghost.org/v0.11.11/docs
    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. Tjek ghost.servicestatus:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Naviger til https://blog.domain.tld/ghost/og opret en Ghost-administratorbruger. Gør dette så hurtigt som muligt!

Konklusion

Det er det. Vi har nu en fuldt funktionel spøgelsesblog. Din server leverer indhold via HTTP/2, når det understøttes af klienten. Hvis du vil ændre standard Ghost-temaet kaldet Casper til et brugerdefineret, kan du bare downloade og pakke temaet ud i /var/www/ghost/content/themesmappen og vælge det via Ghost-admin-grænsefladen, som er placeret på https://blog.domain.tld/ghost.


Oprettelse af en Jekyll-blog på Ubuntu 16.04

Oprettelse af en Jekyll-blog på Ubuntu 16.04

Bruger du et andet system? Jekyll er et godt alternativ til WordPress til at blogge eller dele indhold. Det kræver ingen databaser, og det er meget nemt, dvs

Sådan installeres MODX Revolution på en Ubuntu 16.04 LAMPE VPS

Sådan installeres MODX Revolution på en Ubuntu 16.04 LAMPE VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold

Oprettelse af en Jekyll-blog på CentOS 7

Oprettelse af en Jekyll-blog på CentOS 7

Bruger du et andet system? Jekyll er et godt alternativ til WordPress. Det kræver ingen databaser, og det fungerer med et sprog, som mange kender til

Sådan installeres MODX Revolution på en CentOS 7 LAMPE VPS

Sådan installeres MODX Revolution på en CentOS 7 LAMPE VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i

Installation af Fork CMS på CentOS 7

Installation af Fork CMS på CentOS 7

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

Sådan installeres Neos CMS på CentOS 7

Sådan installeres Neos CMS på CentOS 7

Neos er et innovativt open source-indholdsstyringssystem, som er fantastisk til at skabe og redigere onlineindhold. Med forfattere og redaktører i tankerne, Neo

Sådan implementeres Ghost v0.11 LTS på CentOS 7.3

Sådan implementeres Ghost v0.11 LTS på CentOS 7.3

Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201

Sådan installeres SilverStripe CMS på en FreeBSD 11 FAMP VPS

Sådan installeres SilverStripe CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er let

Sådan installeres Ghost v0.11 LTS på Fedora 25

Sådan installeres Ghost v0.11 LTS på Fedora 25

Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201

Sådan implementeres flere Wordpress-websteder ved hjælp af Virtualmin og Ansible på Ubuntu 16.04

Sådan implementeres flere Wordpress-websteder ved hjælp af Virtualmin og Ansible på Ubuntu 16.04

En almindelig brug af en Vultr virtuel server er at være vært for Wordpress-websteder. Denne guide viser dig, hvordan du automatiserer konfigurationen af ​​en virtuel server fra bunden

Opsætning af Ghost Professional Publishing Platform på OpenBSD 6

Opsætning af Ghost Professional Publishing Platform på OpenBSD 6

Ghost er den seneste og bedste opkomling til at konkurrere med WordPress. Temaudvikling er hurtig og nem at lære, fordi Ghost-udviklerne besluttede at bruge både th

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

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

Ghost er en moderne, open source publiceringsplatform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet af Handlebars.js. Ghos

Sådan installeres MODX Revolution på en Fedora 26 LAMPE VPS

Sådan installeres MODX Revolution på en Fedora 26 LAMPE VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i

Sådan installeres Dotclear på Debian 9 (Stretch)

Sådan installeres Dotclear på Debian 9 (Stretch)

Bruger du et andet system? Dotclear er en meget simpel blogging-motor. Det er open source og nemt at bruge. Denne tutorial vil gennemgå installationen på

Sådan installeres SilverStripe CMS på en Fedora 26 LAMP VPS

Sådan installeres SilverStripe CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt gratis og open source enterprise-grade Content Management System (CMS) skrevet i PHP. jeg

Installation af Fork CMS på Ubuntu 16.04 LTS

Installation af Fork CMS på Ubuntu 16.04 LTS

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

Sådan installeres Ghost på Debian 8.7

Sådan installeres Ghost på Debian 8.7

Bruger du et andet system? Ghost er en open source-blogplatform, der er ved at vinde popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. jeg

Installation af Fork CMS på Debian 9

Installation af Fork CMS på Debian 9

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, 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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere