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

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 sätta upp och distribuera en säker Ghost v0.11.x LTS- blogg på en CentOS 7.3 VPS med hjälp av Let's Encrypt , Certbot , Node.js , NPM , NGINX och MySQL .

Krav

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

Innan du börjar

  1. Kontrollera CentOS-versionen:

    cat /etc/centos-release
    # CentOS Linux release 7.3.1611 (Core)
    
  2. Skapa en ny icke-rootanvändare :

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Gör den till superanvändare genom att lägga till den i wheelgruppen:

    usermod -aG wheel johndoe
    
  4. Byt till ny användare:

    su - johndoe
    
  5. Uppdatera ditt operativsystems programvara:

    sudo yum check-update || sudo yum update -y
    
  6. Ställ in tidszonen:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Installera utvecklingsverktyg:

    sudo yum groupinstall -y 'Development Tools'
    
  8. Installera Vim textredigerare:

    sudo yum install -y vim
    
  9. 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. Aktivera arkivet Extra Packages for Enterprise Linux (EPEL):

    # Certbot is packaged in Extra Packages for Enterprise Linux (EPEL) repository. To use Certbot, you must first enable the EPEL repository.
    sudo yum install -y epel-release
    
  2. Installera Certbot (tidigare Let's Encrypt client ) certifikathanteringsprogramvara gjord med Python:

    sudo yum install -y certbot
    
  3. Kontrollera Certbot-versionen:

    certbot --version
    # certbot 0.14.1
    
  4. 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:

    sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo yum install -y nodejs
    
  2. Kontrollera versionen av Node.js och NPM:

    node -v && npm -v
    # v6.11.2
    # 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 den senaste versionen av MySQL (för närvarande 5.7 ) från det officiella MySQL Yum-förrådet:

    cd /tmp
    
    # Adding the MySQL Yum Repository
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    sudo yum localinstall -y mysql57-community-release-el7-11.noarch.rpm
    
    # Installing MySQL
    sudo yum install -y mysql-community-server
    
  2. Kontrollera MySQL-versionen:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Starta MySQL Server och kontrollera dess status:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL version 5.7 eller högre genererar ett tillfälligt slumpmässigt lösenord för MySQL- rootanvändare efter installationen och lösenordet lagras i MySQL-felloggfilen, som finns på /var/log/mysqld.log. För att avslöja det, använd följande kommando:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Kör mysql_secure_installationskriptet för att säkra din databas lite:

    NOTE: Password Validation Plugin is installed and enabled, so your new password for root user needs to be strong (one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters). If you want to relax that or disable plugin completely (not recommended) consult the official MySQL documentation for how to do that.

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

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

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

    exit
    

Installera NGINX

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

    # Add the NGINX Yum Repository
    sudo vim /etc/yum.repos.d/nginx_mainline.repo
    
    
    # Copy/paste the following into /etc/yum.repos.d/nginx_mainline.repo
    [nginx]
    name=nginx repo
    baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
    gpgcheck=1
    enabled=1
    
    
    wget https://nginx.org/keys/nginx_signing.key
    sudo rpm --import nginx_signing.key
    rm nginx_signing.key
    
    sudo yum 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 generera en ny Diffie-Hellman ( DH ) parametrar:

    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 spökanvändare:

    sudo useradd -c 'Ghost application' ghost
    
  3. Ladda ner Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.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 spökkatalogen:

    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 produktions fö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 spökanvändare tillbaka till icke-rootanvändare som du skapade i början:

    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 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.11/docs
    After=network.target
    
    [Service]
    Type=simple
    # Edit WorkingDirectory, User and Group as needed
    WorkingDirectory=/var/www/ghost
    User=ghost
    Group=ghost
    ExecStart=/bin/npm start --production
    ExecStop=/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