Hvordan distribuere Ghost v0.11 LTS på CentOS 7.3

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 CentOS 7.3 VPS ved å bruke Let's Encrypt , Certbot , Node.js , NPM , NGINX og MySQL .

Krav

  • Registrer (kjøp) et domenenavn.
  • CentOS 7.3 serverforekomst med minimum 1 GB RAM .
  • Sudo bruker.

Før du begynner

  1. Sjekk CentOS-versjonen:

    cat /etc/centos-release
    # CentOS Linux release 7.3.1611 (Core)
    
  2. Opprett en ny ikke-rootbruker :

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Gjør den til superbruker ved å legge den til i wheelgruppen:

    usermod -aG wheel johndoe
    
  4. Bytt til ny bruker:

    su - johndoe
    
  5. Oppdater operativsystemets programvare:

    sudo yum check-update || sudo yum update -y
    
  6. Sett opp tidssonen:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Installer utviklingsverktøy:

    sudo yum groupinstall -y 'Development Tools'
    
  8. Installer Vim-tekstredigerer:

    sudo yum install -y vim
    
  9. 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. Aktiver depotet for ekstrapakker 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. Installer Certbot (tidligere Let's Encrypt Client ) programvare for sertifikatbehandling laget med Python:

    sudo yum install -y certbot
    
  3. Sjekk Certbot-versjonen:

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

    sudo curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo yum install -y nodejs
    
  2. Sjekk Node.js og NPM-versjonen:

    node -v && npm -v
    # v6.11.2
    # 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 den nyeste versjonen av MySQL (for øyeblikket 5.7 ) fra det offisielle MySQL Yum-depotet:

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

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Start MySQL Server og sjekk statusen:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL versjon 5.7 eller høyere genererer et midlertidig tilfeldig passord for MySQL- rootbruker etter installasjon og passord er lagret i MySQL-feilloggfilen, som ligger på /var/log/mysqld.log. For å avsløre det, bruk følgende kommando:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Kjør mysql_secure_installationskriptet for å sikre databasen din litt:

    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. Logg på MySQL som root-bruker:

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

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

    exit
    

Installer NGINX

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

    # 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. 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 nye Diffie-Hellman ( DH ) parametere:

    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 spøkelsesbruker:

    sudo useradd -c 'Ghost application' ghost
    
  3. Last ned Ghost:

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

    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 produksjonsobjektet 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 CTRL+ Cog gå ut fra Ghost-bruker tilbake til ikke-rootbruker som du har opprettet i begynnelsen:

    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 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.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. 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 i /var/www/ghost/content/themesmappen og velge det via Ghost-administrasjonsgrensesnittet, 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