Kā izvietot Ghost v0.11 LTS uz Fedora 25

Ghost ir atvērtā koda emuāru veidošanas platforma, kas kopš 2013. gada izlaišanas ir guvusi popularitāti izstrādātāju un parasto lietotāju vidū. Tas koncentrējas uz saturu un emuāru veidošanu. Vispievilcīgākais Ghost ir tā vienkāršais, tīrais un atsaucīgais dizains. Varat rakstīt savus emuāra ierakstus no mobilā tālruņa. Ghost saturs ir rakstīts, izmantojot Markdown valodu. Ghost ir lieliski piemērots indivīdiem vai nelielām rakstnieku grupām.

Šajā rokasgrāmatā mēs iestatīsim un izvietosim drošu Ghost v0.11.x LTS emuāru Fedora 25 VPS, izmantojot Let's Encrypt , Certbot , Node.js , NPM , NGINX un MySQL .

Prasības

  • Reģistrēt (iegādāties) domēna vārdu.
  • Fedora 25 servera gadījums ar vismaz 1 GB RAM .
  • Sudo lietotājs.
  • Jums, iespējams, būs jāatver ports 2368 ar semanage port -a -t http_port_t -p tcp 2368.

Pirms tu sāc

  1. Pārbaudiet Fedora versiju:

    cat /etc/fedora-release
    # Fedora release 25 (Twenty Five)
    
  2. Izveidojiet jaunu lietotāju, kas nav saknes lietotājs:

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Padariet to par superlietotāju, pievienojot to wheelgrupai:

    usermod -aG wheel johndoe
    
  4. Pārslēgties uz jaunu lietotāju:

    su - johndoe
    
  5. Atjauniniet operētājsistēmas programmatūru:

    sudo dnf check-update || sudo dnf upgrade -y
    
  6. Iestatiet laika joslu:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Instalējiet izstrādes rīkus:

    sudo dnf install @development-tools -y
    
  8. Instalējiet Vim teksta redaktoru un Wget:

    sudo dnf install -y vim wget
    
  9. Ja nepieciešams, restartējiet sistēmu:

    sudo shutdown -r now
    

Instalējiet Certbot

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

Mēs izmantosim Let's Encrypt CA un EFF Certbot klientu, lai iegūtu SSL/TLS sertifikātu mūsu Ghost emuāram. Neaizmirstiet aizstāt visus gadījumus blog.domain.tldar savu domēna nosaukumu.

  1. Instalējiet Certbot (iepriekš Let's Encrypt client ) sertifikātu pārvaldības programmatūru, kas izveidota ar Python:

    sudo dnf install -y certbot
    
  2. Pārbaudiet Certbot versiju:

    certbot --version
    # certbot 0.14.1
    
  3. Iegūstiet RSA sertifikātu, izmantojot atsevišķu autentifikācijas metodi (spraudni):

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

    Pēc iepriekšējo darbību veikšanas jūsu sertifikāts un privātā atslēga būs /etc/letsencrypt/live/blog.domain.tlddirektorijā.

Instalējiet Node.js un NPM

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

Ghost ir veidots uz Node.js. Mēs instalēsim ieteicamo Ghost versiju, kas ir v6 Boron LTSšīs rakstīšanas laikā.

  1. Lejupielādējiet un instalējiet Node.js v6 LTS:

    curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo dnf install -y nodejs
    
  2. Pārbaudiet Node.js un NPM versiju:

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

Instalējiet MySQL

Pēc noklusējuma Ghost ir konfigurēts, lai izmantotu SQLite datu bāzi, kurai nav nepieciešama konfigurācija.

Alternatīvi Ghost var izmantot arī ar MySQL datu bāzi, mainot datu bāzes konfigurāciju. Vispirms ir jāizveido datu bāze un lietotājs, pēc tam varat mainīt esošo sqlite3 konfigurāciju.

  1. Lejupielādējiet un instalējiet jaunāko MySQL versiju (pašlaik 5.7 ) no oficiālās MySQL Dnf repozitorija:

    cd /tmp
    
    # Adding the MySQL dnf Repository
    wget https://dev.mysql.com/get/mysql57-community-release-fc25-10.noarch.rpm
    sudo dnf install -y mysql57-community-release-fc25-10.noarch.rpm
    
    # Installing MySQL
    sudo dnf install -y mysql-community-server
    
  2. Pārbaudiet MySQL versiju:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Startējiet MySQL Server un pārbaudiet tā statusu:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL versija 5.7 vai jaunāka versija ģenerē pagaidu nejaušu paroli MySQL rootlietotājam pēc instalēšanas, un parole tiek saglabāta MySQL kļūdu žurnāla failā, kas atrodas /var/log/mysqld.log. Lai to atklātu, izmantojiet šo komandu:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Palaidiet mysql_secure_installationskriptu, lai mazliet aizsargātu datu bāzi:

    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. Piesakieties MySQL kā root lietotājs:

    mysql -u root -p
    # Enter password:
    
  7. Izveidojiet jaunu MySQL datu bāzi un lietotāju:

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

    exit
    

Instalējiet NGINX

  1. Lejupielādējiet un instalējiet NGINX:

    sudo dnf install -y nginx
    
  2. Pārbaudiet, vai tā ir instalēta, pārbaudot NGINX versiju:

    sudo nginx -v
    # nginx version: nginx/1.10.2
    
  3. Pārbaudiet statusu, iespējojiet un palaidiet NGINX pakalpojumu (dēmonu):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Izveidojiet /etc/nginx/ssldirektoriju un ģenerējiet jaunus Diffie-Hellman ( DH ) parametrus:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Izveidojiet žurnāla direktoriju blog.domain.tldvirtuālajam saimniekdatoram:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Konfigurējiet NGINX kā HTTP ( S ) reverso starpniekserveri:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Ielīmējiet tālāk norādīto /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;
        listen 80;
        listen [::]:443 ssl http2;
        listen 443 ssl http2;
    
        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;
        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. Saglabājiet un pārbaudiet NGINX konfigurāciju sintakses kļūdām:

    sudo nginx -t
    
  9. Pārlādēt NGINX konfigurāciju:

    sudo systemctl reload nginx.service
    

Instalējiet Ghost

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

  1. Izveidojiet dokumenta saknes direktoriju:

    sudo mkdir -p /var/www/
    
  2. Izveidojiet jaunu spoku lietotāju:

    sudo useradd -c 'Ghost application' ghost
    
  3. Lejupielādēt Ghost:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Izsaiņojiet Ghost /var/www/ghostdirektorijā (ieteicamā instalēšanas vieta):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Pāriet uz jauno spoku direktoriju:

    cd /var/www/ghost
    
  6. Mainiet /var/www/ghostdirektorija īpašumtiesības :

    sudo chown -R ghost:ghost .
    
  7. Pārslēgties uz jaunu ghostlietotāju:

    sudo su - ghost
    
  8. Pārejiet uz dokumenta sakni /var/www/ghost:

    cd /var/www/ghost
    
  9. Instalējiet Ghost tikai ar ražošanas atkarību. Kad tas ir pabeigts, Ghost tiek instalēts:

    npm install --production
    
  10. Konfigurējiet Ghost, mainot url, mailun databaseražošanas objekta rekvizītu config.jsfailā:

    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ēt Ghost ražošanas vidē:

    npm start --production
    

    Spoks tagad darbosies. Gan emuāra priekšgals, gan administratora interfeiss ir aizsargāti ar HTTPS, un darbojas arī HTTP/2. Varat atvērt savu pārlūkprogrammu un apmeklēt vietni https://blog.domain.tld. Neaizmirstiet aizstāt blog.domain.tldar savu domēna nosaukumu.

  12. Izslēdziet Ghost procesu, nospiežot CTRL+ Cun izejiet no spoka lietotāja atpakaļ uz sākumā izveidoto lietotāju, kas nav saknes lietotājs:

    exit
    

Ghost palaišana kā sistēmas pakalpojums

Ja aizvērsit termināļa sesiju ar savu VPS, arī jūsu emuārs tiks pārtraukts. Tas nav labi. Lai no tā izvairītos, mēs izmantosim systemd. Tas nodrošinās mūsu emuāra darbību 24/7.

  1. Izveidojiet ghost.servicesistēmas vienības failu. Palaidiet sudo sudo vim /etc/systemd/system/ghost.serviceun kopējiet/ielīmējiet tālāk norādīto saturu:

    [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=/usr/bin/npm start --production
    ExecStop=/usr/bin/npm stop --production
    Restart=always
    SyslogIdentifier=Ghost
    
    [Install]
    WantedBy=multi-user.target
    
  2. Iespējot un sākt ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Pārbaudiet ghost.servicestatusu:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Dodieties uz https://blog.domain.tld/ghost/un izveidojiet Ghost administratora lietotāju. Dariet to pēc iespējas ātrāk!

Secinājums

Tieši tā. Tagad mums ir pilnībā funkcionējošs Ghost emuārs. Jūsu serveris piegādā saturu, izmantojot HTTP/2, ja to atbalsta klients. Ja vēlaties mainīt noklusējuma Ghost motīvu Casper uz pielāgotu, varat vienkārši lejupielādēt un izpakot motīvu /var/www/ghost/content/themesmapē un atlasīt to, izmantojot Ghost administratora saskarni, kas atrodas https://blog.domain.tld/ghost.

Atstājiet komentāru

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk