Cum să implementați Ghost v0.11 LTS pe Ubuntu 16.04

Ghost este o platformă de bloguri open source, care a câștigat popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți de la lansarea din 2013. Pune accent pe conținut și pe bloguri. Cel mai atractiv lucru despre Ghost este designul său simplu, curat și sensibil. Vă puteți scrie postările de pe blog de pe un telefon mobil. Conținutul pentru Ghost este scris folosind limbajul Markdown. Fantoma este potrivită pentru persoane sau grupuri mici de scriitori.

În acest ghid vom configura și disloca un blog LTS sigur Ghost v0.11.x pe un VPS Ubuntu 16.04 LTS folosind Let's Encrypt , Certbot , Node.js , NPM , NGINX și MySQL .

cerinţe

  • Înregistrați (cumpărați) un nume de domeniu.
  • Server Ubuntu 16.04 instanță server cu minim 1 GB RAM .
  • Utilizator Sudo

Înainte de a începe

  1. Creați un nou cont de utilizator non-root :

    adduser johndoe --gecos "John Doe"
    
  2. Faceți-l superuser adăugându-l în sudogrup:

    usermod -aG sudo johndoe
    
  3. Treceți la un utilizator nou:

    su - johndoe
    
  4. Actualizați software-ul sistemului dvs. de operare:

    sudo apt update && sudo apt upgrade -y
    
  5. Configurați fusul orar:

    sudo dpkg-reconfigure tzdata
    
  6. Instalați instrumentele necesare:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. Reporniți sistemul dacă este necesar:

    sudo shutdown -r now
    

Instalați Certbot

NOTĂ : Înainte de a începe acest pas, asigurați-vă că ați setat înregistrări DNS pentru domeniul dvs.

Vom folosi Criptați Să CA și FEP e client Certbot pentru a obține SSL / TLS certificat pentru blog - ul nostru fantomă. Nu uitați să înlocuiți toate instanțele blog.domain.tldcu numele de domeniu.

  1. Instalați software-ul de gestionare a certificatelor Certbot (fostul client Let's Encrypt ) realizat cu 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. Verificați versiunea Certbot:

    certbot --version
    # certbot 0.14.2
    
  3. Obțineți certificatul RSA folosind metoda de autentificare autonomă (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. . . .
    #  . . .
    

    După parcurgerea etapelor anterioare, certificatul și cheia privată se vor afla în /etc/letsencrypt/live/blog.domain.tlddirector.

Instalați Node.js și NPM

NOTĂ : În prezent, Ghost acceptă numai versiunile Node.js 4.5+ și 6.9+ .

Ghost este construit pe Node.js. Vom instala versiunea recomandată pentru Ghost, care este v6 Boron LTSla momentul acestei scrieri.

  1. Descărcați și instalați Node.js v6 LTS:

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Verificați versiunea Node.js și NPM:

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

Instalați MySQL

În mod implicit, Ghost vine configurat pentru a utiliza o bază de date SQLite, care nu necesită nicio configurație.

Alternativ, Ghost poate fi utilizat și cu o bază de date MySQL, schimbând configurația bazei de date. Mai întâi trebuie să creați o bază de date și un utilizator, puteți apoi să modificați configurația sqlite3 existentă.

  1. Descărcați și instalați MySQL:

    sudo apt install -y mysql-server
    

    NOTĂ : În timpul instalării, vi se va solicita parola de utilizator „root” MySQL. Ar trebui să setați o parolă sigură pentru utilizatorul „root” MySQL.

  2. Verificați versiunea MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Verificați dacă demonul MySQL a început și funcționează:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Rulați mysql_secure_installationscriptul pentru a vă securiza un pic baza de date:

    sudo mysql_secure_installation
    
  5. Conectați-vă la MySQL ca utilizator root:

    mysql -u root -p
    # Enter password:
    
  6. Creați o nouă bază de date MySQL și utilizator:

    create database dbname;
    grant all on dbname.* to 'user' identified by 'password';
    
  7. Ieșiți de MySQL:

    exit
    

Instalați NGINX

  1. Descărcați și instalați cea mai recentă versiune principală a NGINX din depozitul oficial NGINX:

    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. Verificați dacă este instalat verificând versiunea NGINX:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Verificați starea, activați și porniți serviciul NGINX (daemon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Creați /etc/nginx/ssldirector și generați un nou grup Diffie-Hellman ( DH ):

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Creare director de jurnal pentru blog.domain.tldgazdă virtuală:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Configurați NGINX ca server proxy invers HTTP ( S ):

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Inserați următoarele în /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. Salvați și testați configurația NGINX pentru erori de sintaxă:

    sudo nginx -t
    
  9. Reîncărcați configurația NGINX:

    sudo systemctl reload nginx.service
    

Instalați Ghost

NOTĂ : Dacă doriți să găzduiți mai multe bloguri Ghost pe același VPS, fiecare instanță Ghost trebuie să fie executată pe un port separat.

  1. Creați directorul rădăcină document:

    sudo mkdir -p /var/www/
    
  2. Creați un ghostutilizator nou :

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

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Decuplați Ghost în /var/www/ghostdirector (locația de instalare recomandată):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Accesați noul ghostdirector:

    cd /var/www/ghost
    
  6. Modificați proprietatea /var/www/ghostdirectorului:

    sudo chown -R ghost:ghost .
    
  7. Treceți la un ghostutilizator nou :

    sudo su - ghost
    
  8. Navigați la documentul rădăcină /var/www/ghost:

    cd /var/www/ghost
    
  9. Instalați Ghost doar cu dependențe de producție. Când se finalizează acest lucru, Ghost este instalat:

    npm install --production
    
  10. Configurare fantomă prin schimbarea url, mailși databaseproprietatea în productioninteriorul obiectului de config.jsfișier:

    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
            },
            // . . .
            // . . .
    

    NOTĂ : Ar trebui să configurați mail, de asemenea, setările. Consultați documentația oficială Ghost despre cum să faceți asta.

  11. Start Ghost în mediul de producție:

    npm start --production
    

    Ghostul va alerga acum. Atât blogul front-end cât și interfața de administrare sunt securizate cu HTTPS și HTTP / 2 funcționează de asemenea. Puteți deschide browserul și vizita site-ul la https://blog.domain.tld. Nu uitați să înlocuiți blog.domain.tldcu numele dvs. de domeniu.

  12. Opriți procesul Ghost apăsând CTRL+ Cși ieșiți de la un utilizator fantom înapoi la un utilizator root:

    exit
    

Rulează Ghost ca un serviciu de sistem

Dacă închideți sesiunea de terminal cu VPS, blogul dvs. va coborî și el. Asta nu e bine. Pentru a evita acest lucru, vom folosi systemd. Ne va menține blogul la zi 24/7.

  1. Creați ghost.servicefișierul de unitate systemd. Rulați sudo vim /etc/systemd/system/ghost.serviceși copiați / lipiți conținutul de mai jos:

    [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. Activați și începeți ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Verifică ghost.servicestarea:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Navigați la https://blog.domain.tld/ghost/și creați un utilizator admin Ghost. Faceți acest lucru cât mai curând!

Concluzie

Asta e. Avem acum un blog Ghost complet funcțional. Serverul dvs. livrează conținut prin HTTP / 2 atunci când este acceptat de client. Dacă doriți să schimbați tema Ghost implicită numită Casper într-una personalizată, puteți doar să descărcați și să dezarhivați tema în /var/www/ghost/content/themesfolder și să o selectați prin interfața de administrare Ghost, localizată la https://blog.domain.tld/ghost.



Leave a Comment

Instalați WordPress pe OpenBSD 6.2

Instalați WordPress pe OpenBSD 6.2

Introducere WordPress este sistemul dominant de gestionare a conținutului pe internet. Acesta alimentează totul, de la bloguri la site-uri web complexe, cu conținut dinamic

Instalați și configurați un blog Ghost v1.0.0 pe Ubuntu 16.04

Instalați și configurați un blog Ghost v1.0.0 pe Ubuntu 16.04

Ghost este o platformă de publicare modernă, open source, construită pe Node.js, cu un client de administrare Ember.js, o API JSON și o API temă alimentată de Handlebars.js. GHOS

Cum să implementați Ghost pe Debian 8.7

Cum să implementați Ghost pe Debian 8.7

Folosind un sistem diferit? Ghost este o platformă de bloguri open source care câștigă popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți din lansarea din 2013. eu

Cum se instalează Dotclear pe Debian 9 (Stretch)

Cum se instalează Dotclear pe Debian 9 (Stretch)

Folosind un sistem diferit? Dotclear este un motor de bloguri foarte simplu. Este open-source și ușor de utilizat. Acest tutorial va parcurge instalarea la

Configurarea platformei Ghost Professional Publishing pe OpenBSD 6

Configurarea platformei Ghost Professional Publishing pe OpenBSD 6

Ghost este cel mai recent și cel mai mare upstart pentru a rivaliza cu WordPress. Dezvoltarea tematică este rapidă și ușor de învățat, deoarece dezvoltatorii Ghost au decis să utilizeze ambele aplicații

Rularea WordPress pe OpenBSD 6.5 cu OpenBSDs HTTPD

Rularea WordPress pe OpenBSD 6.5 cu OpenBSDs HTTPD

Introducere Cu cât vă mențineți mai aproape instalarea OpenBSD la valoarea implicită și fără tot atâtea pachete adăugate, cu atât va fi mai sigur. În timp ce mai comun

Cum se instalează MODX Revolution pe un FreeBSD 11 FAMP VPS

Cum se instalează MODX Revolution pe un FreeBSD 11 FAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de administrare a conținutului (CMS) rapid, flexibil, scalabil, open source, de calitate a întreprinderii, scris în PHP. Este

Cum se instalează Neos CMS pe CentOS 7

Cum se instalează Neos CMS pe CentOS 7

Neos este un sistem inovativ de gestionare a conținutului open source, care este excelent pentru crearea și editarea de conținut online. Cu autori și editori în minte, Neo

Cum se instalează MODX Revolution pe un Fedora 26 LAMP VPS

Cum se instalează MODX Revolution pe un Fedora 26 LAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de gestionare a conținutului (CMS) de calitate întreprindere, rapid, flexibil, scalabil, liber și open source

Instalarea Fork CMS pe CentOS 7

Instalarea Fork CMS pe CentOS 7

Folosind un sistem diferit? Fork este un CMS open source scris în PHP. Codul sursă al furcilor este găzduit pe GitHub. Acest ghid vă va arăta cum să instalați Fork CM

Cum se instalează Typesetter CMS pe CentOS 7

Cum se instalează Typesetter CMS pe CentOS 7

Typesetter este un CMS open source scris în PHP axat pe ușurința de utilizare cu editarea True WYSIWYG și stocarea fișierului plat. În acest articol, vom fi installin

Cum se instalează MODX Revolution pe un VPS CentOS 7 LAMP

Cum se instalează MODX Revolution pe un VPS CentOS 7 LAMP

Folosind un sistem diferit? MODX Revolution este un sistem de gestionare a conținutului (CMS) de calitate întreprindere, rapid, flexibil, scalabil, liber și open source

Crearea unui blog Jekyll pe CentOS 7

Crearea unui blog Jekyll pe CentOS 7

Folosind un sistem diferit? Jekyll este o alternativă bună la WordPress. Nu are nevoie de baze de date și funcționează cu un limbaj pe care mulți îl cunosc

Cum să implementați Ghost v0.11 LTS pe Debian 8

Cum să implementați Ghost v0.11 LTS pe Debian 8

Folosind un sistem diferit? Ghost este o platformă de bloguri de tip open source, care a câștigat popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți încă din 201

Instalarea Forks CMS pe Debian 9

Instalarea Forks CMS pe Debian 9

Folosind un sistem diferit? Fork este un CMS open source scris în PHP. Codul sursă al furcilor este găzduit pe GitHub. Acest ghid vă va arăta cum să instalați Fork CM

Cum să implementați Ghost pe Ubuntu 16.04

Cum să implementați Ghost pe Ubuntu 16.04

Folosind un sistem diferit? Ghost este o platformă de bloguri open source care câștigă popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți din lansarea din 2013. eu

Instalarea Fork CMS pe Fedora 28

Instalarea Fork CMS pe Fedora 28

Folosind un sistem diferit? Fork este un CMS open source scris în PHP. Codul sursă al furcilor este găzduit pe GitHub. Acest ghid vă va arăta cum să instalați Fork CM

Cum să implementați Ghost v0.11 LTS pe CentOS 7.3

Cum să implementați Ghost v0.11 LTS pe CentOS 7.3

Folosind un sistem diferit? Ghost este o platformă de bloguri de tip open source, care a câștigat popularitate în rândul dezvoltatorilor și utilizatorilor obișnuiți încă din 201

Cum se instalează MODX Revolution pe un Debian 9 LAMP VPS

Cum se instalează MODX Revolution pe un Debian 9 LAMP VPS

Folosind un sistem diferit? MODX Revolution este un sistem de gestionare a conținutului (CMS) de calitate întreprindere, rapid, flexibil, scalabil, liber și open source

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe