Hoe Ghost v0.11 LTS op Fedora 25 te implementeren

Ghost is een open source blogplatform dat sinds de release in 2013 aan populariteit wint onder ontwikkelaars en gewone gebruikers. Het legt de nadruk op inhoud en bloggen. Het meest aantrekkelijke van Ghost is het eenvoudige, schone en responsieve ontwerp. Je kunt je blogposts schrijven vanaf een mobiele telefoon. Content for Ghost is geschreven in de Markdown-taal. Ghost is perfect geschikt voor individuen of kleine groepen schrijvers.

In deze gids gaan we een veilige Ghost v0.11.x LTS- blog opzetten en implementeren op een Fedora 25 VPS met Let's Encrypt , Certbot , Node.js , NPM , NGINX en MySQL .

Vereisten

  • Registreer (koop) een domeinnaam.
  • Fedora 25 serverinstantie met minimaal 1 GB RAM .
  • Sudo-gebruiker.
  • U zult waarschijnlijk poort 2368 moeten openen met semanage port -a -t http_port_t -p tcp 2368.

Voordat je begint

  1. Controleer Fedora-versie:

    cat /etc/fedora-release
    # Fedora release 25 (Twenty Five)
    
  2. Maak een nieuwe niet-rootgebruiker aan :

    useradd -c "John Doe" johndoe && passwd johndoe
    
  3. Maak het supergebruiker door het aan de wheelgroep toe te voegen :

    usermod -aG wheel johndoe
    
  4. Overschakelen naar nieuwe gebruiker:

    su - johndoe
    
  5. Update de software van uw besturingssysteem:

    sudo dnf check-update || sudo dnf upgrade -y
    
  6. Stel de tijdzone in:

    timedatectl list-timezones
    sudo timedatectl set-timezone 'Region/City'
    
  7. Ontwikkeltools installeren:

    sudo dnf install @development-tools -y
    
  8. Installeer Vim-teksteditor en Wget:

    sudo dnf install -y vim wget
    
  9. Start het systeem indien nodig opnieuw op:

    sudo shutdown -r now
    

Installeer Certbot

OPMERKING : Voordat u met deze stap begint, moet u ervoor zorgen dat u DNS- records voor uw domein heeft ingesteld.

We gaan Let's Encrypt CA en de Certbot-client van EFF gebruiken om een SSL / TLS- certificaat te verkrijgen voor onze Ghost-blog. Vergeet niet om alle instanties van te vervangen blog.domain.tlddoor uw domeinnaam.

  1. Installeer Certbot (voorheen Let's Encrypt client ) software voor certificaatbeheer gemaakt met Python:

    sudo dnf install -y certbot
    
  2. Controleer Certbot-versie:

    certbot --version
    # certbot 0.14.1
    
  3. Verkrijg een RSA- certificaat met behulp van de standalone authenticatiemethode (plug-in):

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

    Na het doorlopen van eerdere stappen, staan ​​uw certificaat en privésleutel in de /etc/letsencrypt/live/blog.domain.tlddirectory.

Installeer Node.js en NPM

OPMERKING : Ghost ondersteunt momenteel alleen Node.js-versies 4.5+ en 6.9+.

Ghost is gebouwd op Node.js. We gaan de aanbevolen versie voor Ghost installeren die v6 Boron LTSop het moment van schrijven is.

  1. Download en installeer Node.js v6 LTS:

    curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
    sudo dnf install -y nodejs
    
  2. Controleer Node.js en NPM-versie:

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

Installeer MySQL

Ghost wordt standaard geconfigureerd om een ​​SQLite-database te gebruiken, waarvoor geen configuratie vereist is.

Als alternatief kan Ghost ook worden gebruikt met een MySQL-database door de databaseconfiguratie te wijzigen. U moet eerst een database en gebruiker aanmaken, daarna kunt u de bestaande sqlite3-configuratie wijzigen.

  1. Download en installeer de nieuwste versie van MySQL (momenteel 5.7 ) vanuit de officiële MySQL Dnf-repository:

    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. Controleer MySQL-versie:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using  EditLine wrapper
    
  3. Start MySQL Server en controleer de status:

    sudo systemctl start mysqld.service
    sudo systemctl status mysqld.service
    
  4. MySQL-versie 5.7 of hoger genereert een tijdelijk willekeurig wachtwoord voor de MySQL- rootgebruiker nadat de installatie en het wachtwoord is opgeslagen in het MySQL-foutenlogbestand, dat zich bevindt op /var/log/mysqld.log. Gebruik het volgende commando om het te onthullen:

    sudo grep 'temporary password' /var/log/mysqld.log
    
  5. Voer het mysql_secure_installationscript uit om uw database een beetje te beveiligen:

    OPMERKING : Plug-in voor wachtwoordvalidatie is geïnstalleerd en ingeschakeld, dus uw nieuwe wachtwoord voor de rootgebruiker moet sterk zijn ( één hoofdletter, één kleine letter, één cijfer en één speciaal teken, en dat de totale wachtwoordlengte minimaal 8 tekens is) ). Als je dat wilt ontspannen of de plug-in volledig wilt uitschakelen ( niet aanbevolen ), raadpleeg dan de officiële MySQL-documentatie voor hoe je dat moet doen.

    sudo mysql_secure_installation
    
  6. Log in op MySQL als rootgebruiker:

    mysql -u root -p
    # Enter password:
    
  7. Maak een nieuwe MySQL-database en gebruiker:

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

    exit
    

Installeer NGINX

  1. Download en installeer NGINX:

    sudo dnf install -y nginx
    
  2. Controleer of het is geïnstalleerd door de NGINX-versie te controleren:

    sudo nginx -v
    # nginx version: nginx/1.10.2
    
  3. Controleer de status, schakel NGINX-service in en start deze (daemon):

    sudo systemctl status nginx.service # inactive (dead)
    sudo systemctl enable nginx.service
    sudo systemctl start nginx.service
    
  4. Maak een /etc/nginx/ssldirectory en genereer een nieuwe Diffie-Hellman ( DH ) -parameters:

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl dhparam -out /etc/nginx/ssl/dhparams-2048.pem 2048
    
  5. Maak een logboekdirectory voor blog.domain.tldvirtuele host:

    sudo mkdir -p /var/log/nginx/blog.domain.tld
    
  6. Configureer NGINX als een HTTP ( S ) reverse-proxyserver:

    sudo vim /etc/nginx/conf.d/ghost.conf
    
  7. Plak het volgende 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;
        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. Bewaar en test NGINX-configuratie op syntaxisfouten:

    sudo nginx -t
    
  9. Herlaad NGINX-configuratie:

    sudo systemctl reload nginx.service
    

Installeer Ghost

OPMERKING : als je meerdere Ghost-blogs op dezelfde VPS wilt hosten, moet elke Ghost-instantie op een afzonderlijke poort worden uitgevoerd.

  1. Maak een document root directory:

    sudo mkdir -p /var/www/
    
  2. Maak een nieuwe spookgebruiker aan:

    sudo useradd -c 'Ghost application' ghost
    
  3. Ghost downloaden:

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.11/Ghost-0.11.11.zip -o ghost.zip
    
  4. Pak Ghost uit in de /var/www/ghostdirectory (aanbevolen installatielocatie):

    sudo unzip -uo ghost.zip -d /var/www/ghost
    rm ghost.zip
    
  5. Ga naar de nieuwe spookdirectory:

    cd /var/www/ghost
    
  6. Wijzig het eigendom van de /var/www/ghostdirectory:

    sudo chown -R ghost:ghost .
    
  7. Overschakelen naar nieuwe ghostgebruiker:

    sudo su - ghost
    
  8. Navigeer naar document root /var/www/ghost:

    cd /var/www/ghost
    
  9. Installeer Ghost alleen met productie-afhankelijkheden. Wanneer dit is voltooid, wordt Ghost geïnstalleerd:

    npm install --production
    
  10. Configure Ghost door het veranderen url, mailen databaseeigendom van de productie object binnenkant van config.jshet bestand:

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

    OPMERKING : u moet mailook instellingen configureren . Raadpleeg de officiële Ghost-documentatie over hoe u dat moet doen.

  11. Start Ghost in productieomgeving:

    npm start --production
    

    Ghost zal nu rennen. Zowel blog front-end als admin-interface zijn beveiligd met HTTPS en HTTP / 2 werkt ook. U kunt uw browser openen en de site bezoeken op https://blog.domain.tld. Vergeet niet te vervangen blog.domain.tlddoor uw domeinnaam.

  12. Sluit het Ghost-proces af door op CTRL+ te drukken Cen de Ghost-gebruiker terug te sluiten naar de niet-rootgebruiker die je aan het begin hebt gemaakt:

    exit
    

Ghost uitvoeren als een systeemservice

Als je je terminalsessie afsluit met je VPS, zal je blog ook verdwijnen. Dat is niet goed. Om dit te voorkomen, gaan we systemd gebruiken. Het houdt onze blog 24/7 bij.

  1. Maak een ghost.servicesystemd unit bestand. Voer sudo uit sudo vim /etc/systemd/system/ghost.serviceen kopieer / plak de onderstaande inhoud:

    [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. Inschakelen en starten ghost.service:

    sudo systemctl enable ghost.service && sudo systemctl start ghost.service
    
  3. Controleer ghost.servicestatus:

    sudo systemctl status ghost.service && sudo systemctl is-enabled ghost.service
    
  4. Navigeer naar https://blog.domain.tld/ghost/en maak een Ghost admin-gebruiker. Doe dit zo snel mogelijk!

Gevolgtrekking

Dat is het. We hebben nu een volledig functionele Ghost-blog. Uw server levert inhoud via HTTP / 2 indien ondersteund door de client. Als je het standaard Ghost-thema genaamd Casper wilt wijzigen in een aangepast thema , kun je het thema gewoon downloaden en uitpakken in de /var/www/ghost/content/themesmap en het selecteren via de Ghost-beheerinterface op https://blog.domain.tld/ghost.



Leave a Comment

Fork CMS installeren op Fedora 28

Fork CMS installeren op Fedora 28

Gebruikt u een ander systeem? Fork is een open source CMS geschreven in PHP. De broncode van Forks wordt gehost op GitHub. In deze handleiding wordt uitgelegd hoe u Fork CM installeert

Ghost v0.11 LTS implementeren op CentOS 7.3

Ghost v0.11 LTS implementeren op CentOS 7.3

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Ghost v0.11 LTS implementeren op Debian 8

Ghost v0.11 LTS implementeren op Debian 8

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Hoe installeer ik het Neos CMS op CentOS 7

Hoe installeer ik het Neos CMS op CentOS 7

Neos is een innovatief open source contentmanagementsysteem dat geweldig is voor het maken en bewerken van online content. Met het oog op auteurs en redacteuren, Neo

WordPress instellen met WooCommerce op CentOS 6

WordPress instellen met WooCommerce op CentOS 6

Vultr-instanties zijn een geweldige manier om uw WordPress-blog uit te voeren, maar een meer opvallende extensie voor WordPress is WooCommerce, een eCommerce-plug-in die de

MODX Revolution installeren op een FreeBSD 11 FAMP VPS

MODX Revolution installeren op een FreeBSD 11 FAMP VPS

Gebruikt u een ander systeem? MODX Revolution is een snel, flexibel, schaalbaar, open source, enterprise-grade Content Management System (CMS) geschreven in PHP. Het ik

MODX Revolution installeren op een Debian 9 LAMP VPS

MODX Revolution installeren op een Debian 9 LAMP VPS

Gebruikt u een ander systeem? MODX Revolution is een snel, flexibel, schaalbaar, gratis en open source, enterprise-grade Content Management System (CMS) geschreven i

Installeer WordPress op OpenBSD 6.2

Installeer WordPress op OpenBSD 6.2

Introductie WordPress is het dominante contentmanagementsysteem op internet. Het ondersteunt alles, van blogs tot complexe websites met dynamische inhoud

Fork CMS installeren op Debian 9

Fork CMS installeren op Debian 9

Gebruikt u een ander systeem? Fork is een open source CMS geschreven in PHP. De broncode van Forks wordt gehost op GitHub. In deze handleiding wordt uitgelegd hoe u Fork CM installeert

Ghost implementeren op Debian 8.7

Ghost implementeren op Debian 8.7

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds de release in 2013 aan populariteit wint onder ontwikkelaars en gewone gebruikers. ik

Dotclear installeren op Debian 9 (Stretch)

Dotclear installeren op Debian 9 (Stretch)

Gebruikt u een ander systeem? Dotclear is een heel eenvoudige blog-engine. Het is open source en makkelijk te gebruiken. Deze tutorial gaat door de installatie op

Meerdere WordPress-sites implementeren met Virtualmin en Ansible op Ubuntu 16.04

Meerdere WordPress-sites implementeren met Virtualmin en Ansible op Ubuntu 16.04

Een veelgebruikt gebruik van een virtuele Vultr-server is het hosten van Wordpress-websites. Deze handleiding laat zien hoe u de configuratie van een virtuele server vanuit scratc automatiseert

Ghost Professional Publishing Platform opzetten op OpenBSD 6

Ghost Professional Publishing Platform opzetten op OpenBSD 6

Ghost is de nieuwste en beste upstart om WordPress te evenaren. Thema-ontwikkeling is snel en gemakkelijk te leren omdat de Ghost-ontwikkelaars besloten om beide te gebruiken

WordPress draaien op OpenBSD 6.5 met OpenBSDs HTTPD

WordPress draaien op OpenBSD 6.5 met OpenBSDs HTTPD

Inleiding Hoe dichter u uw OpenBSD-installatie bij de standaard houdt en zonder zoveel toegevoegde pakketten, hoe veiliger het zal zijn. Terwijl de meer commo

Installeer en configureer een Ghost v1.0.0-blog op Ubuntu 16.04

Installeer en configureer een Ghost v1.0.0-blog op Ubuntu 16.04

Ghost is een modern, open source publicatieplatform gebouwd op Node.js met een Ember.js-beheerclient, een JSON-API en een thema-API, mogelijk gemaakt door Handlebars.js. Ghos

Ghost v0.11 LTS implementeren op Ubuntu 16.04

Ghost v0.11 LTS implementeren op Ubuntu 16.04

Gebruikt u een ander systeem? Ghost is een open source blogplatform dat sinds zijn populariteit aan populariteit wint onder ontwikkelaars en gewone gebruikers

Fork CMS installeren op CentOS 7

Fork CMS installeren op CentOS 7

Gebruikt u een ander systeem? Fork is een open source CMS geschreven in PHP. De broncode van Forks wordt gehost op GitHub. In deze handleiding wordt uitgelegd hoe u Fork CM installeert

Het installeren van Typesetter CMS op CentOS 7

Het installeren van Typesetter CMS op CentOS 7

Typesetter is een open source CMS geschreven in PHP gericht op gebruiksgemak met True WYSIWYG-bewerking en opslag van platte bestanden. In dit artikel zullen we installeren

Hoe MODX Revolution op een Ubuntu 16.04 LAMP VPS te installeren

Hoe MODX Revolution op een Ubuntu 16.04 LAMP VPS te installeren

Gebruikt u een ander systeem? MODX Revolution is een snel, flexibel, schaalbaar, gratis en open source, enterprise-grade Content Management System (CMS) geschreven i

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.