Ghost v0.11 LTS:n käyttöönotto CentOS 7.3:ssa

Ghost on avoimen lähdekoodin blogialusta, joka on kasvattanut suosiotaan kehittäjien ja tavallisten käyttäjien keskuudessa vuodesta 2013 lähtien. Se keskittyy sisältöön ja bloggaamiseen. Houkuttelevin asia Ghostissa on sen yksinkertainen, puhdas ja reagoiva muotoilu. Voit kirjoittaa blogitekstejäsi matkapuhelimella. Ghostin sisältö on kirjoitettu Markdown-kielellä. Ghost sopii täydellisesti yksilöille tai pienille kirjailijaryhmille.

Tässä oppaassa aiomme perustaa ja ottaa käyttöön turvallisen Ghost v0.11.x LTS blogin koskevasta CentOS 7.3 VPS käyttäen Totta Salaa , Certbot , Node.js , NPM , nginx ja MySQL .

Vaatimukset

  • Rekisteröi (osta) verkkotunnus.
  • CentOS 7.3 -palvelinesiintymä, jossa vähintään 1 Gt RAM-muistia .
  • Sudo käyttäjä.

Ennen kuin aloitat

  1. Tarkista CentOS-versio:

    cat /etc/centos-release
    # CentOS Linux release 7.3.1611 (Core)
    
  2. Luo uusi ei-root- käyttäjä:

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Tee siitä superkäyttäjä lisäämällä se wheelryhmään:

    usermod -aG wheel johndoe
    
  4. Vaihda uuteen käyttäjään:

    su - johndoe
    
  5. Päivitä käyttöjärjestelmäsi ohjelmisto:

    sudo yum check-update || sudo yum update -y
    
  6. Aseta aikavyöhyke:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Asenna kehitystyökalut:

    sudo yum groupinstall -y 'Development Tools'
    
  8. Asenna Vim-tekstieditori:

    sudo yum install -y vim
    
  9. Käynnistä järjestelmä tarvittaessa uudelleen:

    sudo shutdown -r now
    

Asenna Certbot

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

Aiomme käyttää Let's Encrypt CA- ja EFF :n Certbot-asiakasohjelmaa saadaksemme SSL/TLS- sertifikaatin Ghost-blogiimme. Älä unohda korvata kaikkia esiintymiä blog.domain.tldverkkotunnuksellasi.

  1. Ota käyttöön Extra Packages for Enterprise Linux (EPEL) -tietovarasto:

    # 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. Asenna Pythonilla tehty Certbot (aiemmin Let's Encrypt client ) varmenteenhallintaohjelmisto:

    sudo yum install -y certbot
    
  3. Tarkista Certbot-versio:

    certbot --version
    # certbot 0.14.1
    
  4. Hanki RSA- sertifikaatti käyttämällä itsenäistä todennusmenetelmää (laajennus):

    sudo certbot certonly --standalone --domains blog.domain.tld --rsa-key-size 2048 --must-staple --email admin@domain.tld --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. . . .
    #  . . .
    

    Kun olet käynyt läpi edelliset vaiheet, varmenteesi ja yksityinen avaimesi ovat /etc/letsencrypt/live/blog.domain.tldhakemistossa.

Asenna Node.js ja NPM

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

Ghost on rakennettu Node.js:lle. Asennamme Ghostille suositellun version, joka on v6 Boron LTStätä kirjoitettaessa.

  1. Lataa ja asenna Node.js v6 LTS:

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

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

Asenna MySQL

Oletuksena Ghost on määritetty käyttämään SQLite-tietokantaa, joka ei vaadi konfigurointia.

Vaihtoehtoisesti Ghostia voidaan käyttää myös MySQL-tietokannan kanssa muuttamalla tietokannan asetuksia. Sinun on ensin luotava tietokanta ja käyttäjä, jonka jälkeen voit muuttaa olemassa olevaa sqlite3-asetusta.

  1. Lataa ja asenna MySQL:n uusin versio (tällä hetkellä 5.7 ) virallisesta MySQL Yum -arkistosta:

    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. Tarkista MySQL-versio:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Käynnistä MySQL Server ja tarkista sen tila:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL-versio 5.7 tai uudempi luo väliaikaisen satunnaisen salasanan MySQL- rootkäyttäjälle asennuksen jälkeen ja salasana tallennetaan MySQL-virhelokitiedostoon, joka sijaitsee osoitteessa /var/log/mysqld.log. Voit paljastaa sen käyttämällä seuraavaa komentoa:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Suorita mysql_secure_installationkomentosarja suojataksesi tietokantaasi hieman:

    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. Kirjaudu MySQL:ään pääkäyttäjänä:

    mysql -u root -p
    # Enter password:
    
  7. Luo uusi MySQL-tietokanta ja käyttäjä:

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

    exit
    

Asenna NGINX

  1. Download and install the latest mainline version of NGINX from the official NGINX repository:

    # 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. Verify that it is installed by checking the NGINX version:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  3. Check status, enable and start NGINX service (daemon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Create /etc/nginx/ssl directory and generate a new Diffie-Hellman (DH) parameters:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Create log directory for blog.domain.tld virtual host:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Configure NGINX as a HTTP(S) reverse proxy server:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Paste the following in /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. Save and test NGINX configuration for syntax errors:

    sudo nginx -t
    
  9. Reload NGINX configuration:

    sudo systemctl reload nginx.service
    

Install Ghost

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

  1. Create document root directory:

    sudo mkdir -p /var/www/
    
  2. Create a new ghost user:

    sudo useradd -c 'Ghost application' 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. Unzip Ghost into the /var/www/ghost directory (recommended install location):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Move to the new ghost directory:

    cd /var/www/ghost
    
  6. Muuta /var/www/ghosthakemiston omistajuutta :

    sudo chown -R ghost:ghost .
    
  7. Vaihda uuteen ghostkäyttäjään:

    sudo su - ghost
    
  8. Siirry asiakirjan juureen /var/www/ghost:

    cd /var/www/ghost
    
  9. Asenna Ghost vain tuotantoriippuvuuksilla. Kun tämä on valmis, Ghost asennetaan:

    npm install --production
    
  10. Määritä Ghost muuttamalla url, mailja databaseomaisuus tuotannon esineen sisällä config.jstiedostoa:

    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. Käynnistä Ghost tuotantoympäristössä:

    npm start --production
    

    Ghost juoksee nyt. Sekä blogin käyttöliittymä että järjestelmänvalvojan käyttöliittymä on suojattu HTTPS:llä ja myös HTTP/2 toimii. Voit avata selaimen ja käydä sivustolla osoitteessa https://blog.domain.tld. Muista korvata se blog.domain.tldverkkotunnuksellasi.

  12. Sammuta Ghost-prosessi painamalla CTRL+ Cja poistu ghost-käyttäjästä takaisin ei-root- käyttäjäksi, jonka olet luonut alussa:

    exit
    

Ghostin käyttäminen järjestelmäpalveluna

Jos suljet pääte-istunnon VPS:lläsi, myös blogisi sulkeutuu. Tuo ei ole hyvä. Tämän välttämiseksi aiomme käyttää systemd. Se pitää blogimme ajan tasalla 24/7.

  1. Luo ghost.servicesystemd-yksikkötiedosto. Suorita sudo sudo vim /etc/systemd/system/ghost.serviceja kopioi/liitä alla oleva sisältö:

    [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. Ota käyttöön ja aloita ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Tarkista ghost.servicetila:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Siirry kohtaan https://blog.domain.tld/ghost/ja luo Ghost-järjestelmänvalvojan käyttäjä. Tee tämä mahdollisimman pian!

Johtopäätös

Se siitä. Meillä on nyt täysin toimiva Ghost-blogi. Palvelimesi toimittaa sisältöä HTTP/2:n kautta, kun asiakas tukee sitä. Jos haluat muuttaa oletusarvoisen Ghost-teeman nimeltä Casper muokatuksi, voit vain ladata ja purkaa teeman /var/www/ghost/content/themeskansioon ja valita sen Ghost-järjestelmänvalvojan käyttöliittymän kautta, joka sijaitsee osoitteessa https://blog.domain.tld/ghost.

Jätä kommentti

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja