Com implementar Ghost v0.11 LTS a Ubuntu 16.04

Ghost és una plataforma de blocs de codi obert que ha anat guanyant popularitat entre desenvolupadors i usuaris normals des del seu llançament el 2013. Es centra en el contingut i els blocs. El més atractiu de Ghost és el seu disseny senzill, net i sensible. Podeu escriure les publicacions del vostre bloc des d'un telèfon mòbil. El contingut de Ghost s'escriu amb el llenguatge Markdown. Ghost s'adapta perfectament a persones o grups reduïts d'escriptors.

En aquesta guia configurarem i implementarem un bloc segur de Ghost v0.11.x LTS en un Ubuntu 16.04 LTS VPS mitjançant Let's Encrypt , Certbot , Node.js , NPM , NGINX i MySQL .

Requisits

  • Registre (compra) un nom de domini.
  • Instància del servidor Ubuntu 16.04 amb un mínim d' 1 GB de RAM .
  • Usuari de Sudo.

Abans que comencis

  1. Creeu un nou compte d'usuari no root :

    adduser johndoe --gecos "John Doe"
    
  2. Fes-lo superusuari afegint-lo al sudogrup:

    usermod -aG sudo johndoe
    
  3. Canvia a un usuari nou:

    su - johndoe
    
  4. Actualitzeu el programari del vostre sistema operatiu:

    sudo apt update && sudo apt upgrade -y
    
  5. Configura la zona horària:

    sudo dpkg-reconfigure tzdata
    
  6. Instal·leu les eines necessàries:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. Reinicieu el sistema si cal:

    sudo shutdown -r now
    

Instal·leu Certbot

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

Utilitzarem Xifra Anem CA i FEP 's client Certbot obtenir SSL / TLS certificat per al nostre bloc Sant. No oblideu substituir totes les instàncies de blog.domain.tldpel vostre nom de domini.

  1. Instal·leu el programari de gestió de certificats Certbot (anteriorment client Let's Encrypt ) fet amb 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. Comproveu la versió de Certbot:

    certbot --version
    # certbot 0.14.2
    
  3. Obteniu el certificat RSA mitjançant el mètode d'autenticació autònom (connector):

    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. . . .
    #  . . .
    

    Després de seguir els passos anteriors, el vostre certificat i clau privada estaran al /etc/letsencrypt/live/blog.domain.tlddirectori.

Instal·leu Node.js i NPM

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

Ghost està construït a Node.js. Instal·larem la versió recomanada de Ghost que es troba v6 Boron LTSen el moment d'escriure aquest article.

  1. Baixeu i instal·leu Node.js v6 LTS:

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Comproveu la versió de Node.js i NPM:

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

Instal·leu MySQL

Per defecte, Ghost ve configurat per utilitzar una base de dades SQLite, que no requereix cap configuració.

Alternativament, Ghost també es pot utilitzar amb una base de dades MySQL canviant la configuració de la base de dades. Primer heu de crear una base de dades i un usuari, després podeu canviar la configuració de sqlite3 existent.

  1. Baixeu i instal·leu 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. Comproveu la versió de MySQL:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Comproveu si el dimoni MySQL s'ha iniciat i s'està executant:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Executeu l' mysql_secure_installationscript per protegir una mica la vostra base de dades:

    sudo mysql_secure_installation
    
  5. Inicieu sessió a MySQL com a usuari root:

    mysql -u root -p
    # Enter password:
    
  6. Creeu una nova base de dades MySQL i un usuari:

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

    exit
    

Instal·leu NGINX

  1. Baixeu i instal·leu la darrera versió principal de NGINX des del dipòsit oficial de 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. Comproveu que estigui instal·lat comprovant la versió de NGINX:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Comproveu l'estat, activeu i inicieu el servei NGINX (dimoni):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Creeu un /etc/nginx/ssldirectori i genereu un nou grup Diffie-Hellman ( DH ):

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Creeu un directori de registre per a blog.domain.tldl'amfitrió virtual:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Configureu NGINX com a servidor intermediari invers HTTP ( S ):

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Enganxeu el següent a /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. Deseu i proveu la configuració de NGINX per detectar errors de sintaxi:

    sudo nginx -t
    
  9. Torneu a carregar la configuració de NGINX:

    sudo systemctl reload nginx.service
    

Instal·leu Ghost

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

  1. Crea el directori arrel del document:

    sudo mkdir -p /var/www/
    
  2. Crea un ghostusuari nou :

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

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.zip -o ghost.zip
    
  4. Descomprimiu Ghost al /var/www/ghostdirectori (ubicació d'instal·lació recomanada):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Mou al ghostdirectori nou :

    cd /var/www/ghost
    
  6. Canvia la propietat del /var/www/ghostdirectori:

    sudo chown -R ghost:ghost .
    
  7. Canvia a un ghostusuari nou :

    sudo su - ghost
    
  8. Navegueu a l'arrel del document /var/www/ghost:

    cd /var/www/ghost
    
  9. Instal·leu Ghost només amb dependències de producció. Quan això s'ha completat, s'instal·la Ghost:

    npm install --production
    
  10. Sant Configura canviant url, maili databasepropietat de l' productioninterior d'objectes de config.jsfitxer:

    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. Inicieu Ghost a l'entorn de producció:

    npm start --production
    

    Ghost ara s'executarà. Tant el front-end del bloc com la interfície d'administració estan protegits amb HTTPS i HTTP/2 també funciona. Podeu obrir el vostre navegador i visitar el lloc a https://blog.domain.tld. No oblidis substituir-lo blog.domain.tldpel teu nom de domini.

  12. Tanqueu el procés Ghost prement CTRL+ Ci sortiu de l'usuari fantasma de nou a l'usuari root:

    exit
    

Execució de Ghost com a servei del sistema

Si tanqueu la sessió del terminal amb el vostre VPS, el vostre bloc també baixarà. Això no és bo. Per evitar-ho, farem servir systemd. Mantindrà el nostre bloc obert les 24 hores del dia.

  1. Creeu un ghost.servicefitxer d'unitat systemd. Executeu sudo vim /etc/systemd/system/ghost.servicei copieu/enganxeu el contingut següent:

    [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 comença ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Comprova l' ghost.serviceestat:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Navegueu https://blog.domain.tld/ghost/i creeu un usuari administrador de Ghost. Fes-ho el més aviat possible!

Conclusió

Això és. Ara tenim un bloc Ghost totalment funcional. El vostre servidor està lliurant contingut mitjançant HTTP/2 quan el client és compatible. Si voleu canviar el tema de Ghost predeterminat anomenat Casper per un de personalitzat, només podeu descarregar i descomprimir el tema a la /var/www/ghost/content/themescarpeta i seleccionar-lo mitjançant la interfície d'administració de Ghost, ubicada a https://blog.domain.tld/ghost.


Creació dun bloc Jekyll a Ubuntu 16.04

Creació dun bloc Jekyll a Ubuntu 16.04

Utilitzeu un sistema diferent? Jekyll és una gran alternativa a WordPress per crear blocs o compartir contingut. No requereix cap base de dades i és molt fàcil

Com instal·lar MODX Revolution en un Ubuntu 16.04 LAMP VPS

Com instal·lar MODX Revolution en un Ubuntu 16.04 LAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, gratuït i de codi obert, escrit i

Com instal·lar MODX Revolution en un FreeBSD 11 FAMP VPS

Com instal·lar MODX Revolution en un FreeBSD 11 FAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, de codi obert i de grau empresarial escrit en PHP. És jo

Instal·leu WordPress a OpenBSD 6.2

Instal·leu WordPress a OpenBSD 6.2

Introducció WordPress és el sistema de gestió de continguts dominant a Internet. Potencia tot, des de blocs fins a llocs web complexos amb contingut dinàmic

Creació dun bloc Jekyll a CentOS 7

Creació dun bloc Jekyll a CentOS 7

Utilitzeu un sistema diferent? Jekyll és una bona alternativa a WordPress. No requereix cap base de dades i funciona amb un llenguatge que molts coneixen

Com instal·lar MODX Revolution en un CentOS 7 LAMP VPS

Com instal·lar MODX Revolution en un CentOS 7 LAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, gratuït i de codi obert, escrit i

Instal·lació de Fork CMS a CentOS 7

Instal·lació de Fork CMS a CentOS 7

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com instal·lar el Neos CMS a CentOS 7

Com instal·lar el Neos CMS a CentOS 7

Neos és un innovador sistema de gestió de continguts de codi obert ideal per crear i editar contingut en línia. Tenint en compte els autors i editors, Neo

Com implementar Ghost v0.11 LTS a CentOS 7.3

Com implementar Ghost v0.11 LTS a CentOS 7.3

Utilitzeu un sistema diferent? Ghost és una plataforma de blocs de codi obert que ha anat guanyant popularitat entre desenvolupadors i usuaris corrents des del 201.

Com instal·lar SilverStripe CMS en un FreeBSD 11 FAMP VPS

Com instal·lar SilverStripe CMS en un FreeBSD 11 FAMP VPS

Utilitzeu un sistema diferent? SilverStripe és un sistema de gestió de continguts (CMS) de codi obert, flexible i extensible, escrit en PHP. És fàcil

Com implementar Ghost v0.11 LTS a Fedora 25

Com implementar Ghost v0.11 LTS a Fedora 25

Utilitzeu un sistema diferent? Ghost és una plataforma de blocs de codi obert que ha anat guanyant popularitat entre desenvolupadors i usuaris corrents des del 201.

Com implementar diversos llocs de Wordpress mitjançant Virtualmin i Ansible a Ubuntu 16.04

Com implementar diversos llocs de Wordpress mitjançant Virtualmin i Ansible a Ubuntu 16.04

Un ús comú d'un servidor virtual Vultr és allotjar llocs web de Wordpress. Aquesta guia us mostra com automatitzar la configuració d'un servidor virtual des de zero

Configuració de la plataforma de publicació professional Ghost a OpenBSD 6

Configuració de la plataforma de publicació professional Ghost a OpenBSD 6

Ghost és l'últim i millor advenent que rivalitza amb WordPress. El desenvolupament de temes és ràpid i fàcil d'aprendre perquè els desenvolupadors de Ghost van decidir utilitzar tots dos

Instal·leu i configureu un bloc Ghost v1.0.0 a Ubuntu 16.04

Instal·leu i configureu un bloc Ghost v1.0.0 a Ubuntu 16.04

Ghost és una plataforma de publicació moderna i de codi obert construïda a Node.js amb un client d'administració Ember.js, una API JSON i una API temàtica impulsada per Handlebars.js. Ghos

Com instal·lar MODX Revolution en un Fedora 26 LAMP VPS

Com instal·lar MODX Revolution en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? MODX Revolution és un sistema de gestió de continguts (CMS) ràpid, flexible, escalable, gratuït i de codi obert, escrit i

Com instal·lar Dotclear a Debian 9 (Stretch)

Com instal·lar Dotclear a Debian 9 (Stretch)

Utilitzeu un sistema diferent? Dotclear és un motor de blocs molt senzill. És de codi obert i fàcil d'utilitzar. Aquest tutorial passarà per la instal·lació

Instal·lació de Fork CMS a Ubuntu 16.04 LTS

Instal·lació de Fork CMS a Ubuntu 16.04 LTS

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com implementar Ghost a Debian 8.7

Com implementar Ghost a Debian 8.7

Utilitzeu un sistema diferent? Ghost és una plataforma de blocs de codi obert que està guanyant popularitat entre desenvolupadors i usuaris normals des del seu llançament el 2013. jo

Instal·lació de Fork CMS a Debian 9

Instal·lació de Fork CMS a Debian 9

Utilitzeu un sistema diferent? Fork és un CMS de codi obert escrit en PHP. El codi font de Forks està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar Fork CM

Com instal·lar Typesetter CMS a CentOS 7

Com instal·lar Typesetter CMS a CentOS 7

Typesetter és un CMS de codi obert escrit en PHP centrat en la facilitat d'ús amb l'edició True WYSIWYG i l'emmagatzematge de fitxers plans. En aquest article, ens instal·larem

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació