Ghost v0.11 LTS implementeren op Ubuntu 16.04

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 handleiding gaan we een veilige Ghost v0.11.x LTS- blog opzetten en implementeren op een Ubuntu 16.04 LTS VPS met Let's Encrypt , Certbot , Node.js , NPM , NGINX en MySQL .

Vereisten

  • Registreer (koop) een domeinnaam.
  • Ubuntu-server 16.04-serverinstantie met minimaal 1 GB RAM .
  • Sudo-gebruiker.

Voordat je begint

  1. Maak een nieuw niet-root gebruikersaccount aan:

    adduser johndoe --gecos "John Doe"
    
  2. Maak het supergebruiker door het aan de sudogroep toe te voegen :

    usermod -aG sudo johndoe
    
  3. Overschakelen naar nieuwe gebruiker:

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

    sudo apt update && sudo apt upgrade -y
    
  5. Stel de tijdzone in:

    sudo dpkg-reconfigure tzdata
    
  6. Installeer de vereiste tools:

    sudo apt install -y build-essential zip unzip vim nano openssl wget curl git apt-transport-https
    
  7. 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 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. Controleer Certbot-versie:

    certbot --version
    # certbot 0.14.2
    
  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 -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt install -y nodejs
    
  2. Controleer Node.js en NPM-versie:

    node -v && npm -v
    # v6.11.1
    # 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 MySQL:

    sudo apt install -y mysql-server
    

    OPMERKING : Tijdens de installatie wordt u gevraagd om het MySQL "root" -gebruikerswachtwoord. U moet een veilig wachtwoord instellen voor de MySQL "root" -gebruiker.

  2. Controleer MySQL-versie:

    mysql --version
    # mysql  Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using  EditLine wrapper
    
  3. Controleer of MySQL-daemon is gestart en wordt uitgevoerd:

    sudo systemctl status mysql.service
    sudo systemctl is-enabled mysql.service
    
  4. Voer het mysql_secure_installationscript uit om uw database een beetje te beveiligen:

    sudo mysql_secure_installation
    
  5. Log in op MySQL als rootgebruiker:

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

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

    exit
    

Installeer NGINX

  1. Download en installeer de nieuwste mainline- versie van NGINX vanuit de officiële NGINX-repository:

    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. Controleer of het is geïnstalleerd door de NGINX-versie te controleren:

    sudo nginx -v
    # nginx version: nginx/1.13.3
    
  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 ) -groep:

    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 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. 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 ghostgebruiker aan:

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

    curl -L https://github.com/TryGhost/Ghost/releases/download/0.11.10/Ghost-0.11.10.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 ghostmap:

    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 productionobject 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 root-gebruiker:

    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 vim /etc/systemd/system/ghost.servicede onderstaande inhoud uit en kopieer / plak deze:

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

Hoe Ghost v0.11 LTS op Fedora 25 te implementeren

Hoe Ghost v0.11 LTS op Fedora 25 te implementeren

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

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

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.