So erstellen Sie ein Blog mit Ghost und Nginx unter Ubuntu 14.04

Einführung

Ghost ist eine kompakte (~ 7,5 MB) Open-Source-Blogging-Plattform, die sehr einfach zu bedienen ist. Ghost ist vollständig anpassbar. Es gibt jede Menge kostenlose und kostenpflichtige Themen für Ghost im Internet.

In diesem Tutorial werden wir die Schritte durchgehen, um Ghost-Setup und Ausführung auf Ihrem Ubuntu 14.04-System zu erhalten. Wir werden Nginx auch auf Proxy-Ports installieren undforever, ein Knotenpaket, installieren, um Ghost im Hintergrund laufen zu lassen.

Voraussetzungen

Es gibt keine Mindestgröße für einen Server, auf dem Ghost ausgeführt werden soll. Überlegen Sie, wie viele Besucher Ihr Blog erhalten wird und wie viel Inhalt Sie freigeben möchten, wenn Sie sich für die Größe des zu erstellenden Droplets entscheiden. Dieses Tutorial wurde mit dem kleinsten DigitalOcean Droplet unter Ubuntu 14.04 getestet.

Bevor Sie beginnen, benötigen Sie Folgendes:

  • Ubuntu 14.04 Droplet

  • Registrierter Domainname zeigt auf die IP-Adresse Ihres Droplets

  • Ein Benutzer ohne Rootberechtigung mit sudo-Berechtigungen

This tutorial hilft Ihnen dabei, Ihren Domain-Namen so einzurichten, dass er auf Ihr Droplet verweist.

Alle Befehle in diesem Lernprogramm sollten als Benutzer ohne Rootberechtigung ausgeführt werden. Wenn für den Befehl Root-Zugriff erforderlich ist, wirdsudo vorangestellt. Initial Server Setup with Ubuntu 14.04 erklärt, wie Benutzer hinzugefügt und ihnen Sudo-Zugriff gewährt werden.

[[Schritt-1 -—- Installationsknoten-js-und-npm]] == Schritt 1 - Installiere Node.js und Npm

Sie müssen Ihren lokalen Paketindex aktualisieren und die Paketezip undwget installieren. Wir werden sie später in diesem Tutorial verwenden.

sudo apt-get update
sudo apt-get install zip wget

Ghost benötigt Node.js v0.10.x (neueste Version). Instabile Versionen von Node wie v0.12.x werden vonnotunterstützt. Node.js v0.10.36 and npm v2.5.0 are recommended by Ghost.org.

Installieren Sie Node.js mit der PPA-Methode vonthis tutorial.

Nachdem Sie Node.js installiert haben, überprüfen Sie die installierte Version, indem Sie Folgendes ausführen:

node -v

Die Ausgabe sollte ungefähr so ​​aussehen:

v0.10.38

Überprüfen Sie, obnpminstalliert ist:

npm -v

Es sollte die installierte Version von npm ausgeben, wenn es installiert ist:

1.4.28

Wenn es einen Fehler ausgibt, bei dem npm nicht installiert ist, installieren Sie es mit dem folgenden Befehl:

sudo apt-get install npm

Aktualisieren Sienpm auf Version 2.5.0, indem Sie den folgenden Befehl ausführen:

sudo npm install [email protected] -g

Überprüfen Sie die installierte Version vonnpm:

npm -v

Die Ausgabe sollte sein:

2.5.0

[[Schritt-2 - Install-Ghost]] == Schritt 2 - Ghost installieren

Als nächstes müssen wir Ghost installieren. Ghost.org recommends to install Ghost in var/www/ghost, so that is where we will install it.

Zuerst erstellen wir ein Verzeichnis/var/www/ und laden dann die neueste Version von Ghost aus dem GitHub-Repository von Ghost herunter:

sudo mkdir -p /var/www/
cd /var/www/
sudo wget https://ghost.org/zip/ghost-latest.zip

Nachdem wir die neueste Version von Ghost erhalten haben, müssen wir sie entpacken. Wir werden auch unser Verzeichnis in/var/www/ghost/ ändern:

sudo unzip -d ghost ghost-latest.zip
cd ghost/

Jetzt können wir die Ghost-Abhängigkeiten und Knotenmodule installieren (nur Produktionsabhängigkeiten):

sudo npm install --production

Ghost wird installiert, wenn dies abgeschlossen ist. Wir müssen Ghost einrichten, bevor wir es starten können.

[[Schritt 3 - Einrichten des Geistes]] == Schritt 3 - Einrichten des Geistes

Die Konfigurationsdatei von Ghost sollte sich bei/var/www/ghost/config.js befinden. Mit Ghost wird jedoch keine solche Datei installiert. Stattdessen enthält die Installationconfig.example.js.

Kopieren Sie die Beispielkonfigurationsdatei an den richtigen Speicherort. Stellen Sie sicher, dass Sie kopieren statt verschieben, damit Sie eine Kopie der ursprünglichen Konfigurationsdatei haben, falls Sie Ihre Änderungen rückgängig machen müssen.

sudo cp config.example.js config.js

Ihre URL- und E-Mail-Einstellungen im Abschnittproductionind die wichtigsten Informationsbereiche, die geändert werden müssen. Die URL ist erforderlich. Andernfalls gelangen Sie über die Links zur Standardseitehttp://my-ghost-blog.com. Ghost kann auch ohne die E-Mail-Einstellungen funktionieren. Es wird jedoch empfohlen, diese hinzuzufügen. Zum Zeitpunkt des Schreibens dieses Artikels ist für Ghost nur die E-Mail-Funktion erforderlich, wenn der Benutzer sein Kontokennwort vergisst. Es schadet also nicht, E-Mails nicht zu konfigurieren.

Öffnen Sie die Datei zum Bearbeiten:

sudo nano config.js

Sie müssen den Wert vonurl in eine beliebige Domain ändern (oder Sie können die IP-Adresse Ihres Servers verwenden, falls Sie gerade keine Domain verwenden möchten). Dieser Wert muss in Form einer URL vorliegen. Zum Beispielhttp://example.com/ oderhttp://45.55.76.126/. Wenn dieser Wert nicht korrekt formatiert ist, wird Ghost nicht gestartet.

Ändern Sie auch den Wert vonhost im Abschnittserver in0.0.0.0.

Das Folgende zeigt die Werte, die in Rot geändert werden müssen:

/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: 'http://my-ghost-blog.com',
        mail: {
            // Your mail settings
        },
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },

        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',
            // Port to be passed to node's `net.Server#listen()`, for iisnode s$
            port: '2368'
        }
    },

(...)

Speichern Sie die Datei und beenden Sie den Nano-Texteditor, indem SieCTRL+X, dannY und schließlichENTER drücken.

Starten Sie Ghost, während Sie sich noch im Verzeichnis/var/www/ghostbefinden, mit dem folgenden Befehl:

sudo npm start --production

Die Ausgabe sollte ungefähr so ​​aussehen:

> [email protected] start /var/www/ghost
> node index

Migrations: Database initialisation required for version 003
Migrations: Creating tables...
Migrations: Creating table: posts

[...]

Wenn alles gut geht, sollten Sie über Port 2368 auf Ihr Blog zugreifen können:http://your_domain._name:2368 (oderhttp://your_servers_ip:2368).

Drücken SieCTRL+C in Ihrem Terminal, um die Ghost-Instanz herunterzufahren.

[.note] #Note: Ghost kann weiter angepasst werden. Ghost.org erklärt jede Konfigurationsoption im Detail.
#

[[Schritt-4- - Install-Nginx]] == Schritt 4 - Installieren Sie Nginx

Der nächste Schritt ist die Installation von Nginx. Grundsätzlich können Verbindungen über Port 80 mit dem Port verbunden werden, auf dem Ghost ausgeführt wird. Mit einfachen Worten, Sie können auf Ihr Ghost-Blog zugreifen, ohne die:2368 hinzuzufügen.

Installieren Sie es mit dem folgenden Befehl:

sudo apt-get install nginx

Als nächstes müssen wir Nginx konfigurieren, indem wir unser Verzeichnis in/etc/nginx ändern und die Standarddatei in/etc/nginx/sites-enabled entfernen:

cd /etc/nginx/
sudo rm sites-enabled/default

Wir werden eine neue Datei in/etc/nginx/sites-available/ namensghost erstellen und sie mitnano öffnen, um sie zu bearbeiten:

sudo touch /etc/nginx/sites-available/ghost
sudo nano /etc/nginx/sites-available/ghost

Fügen Sie den folgenden Code in die Datei ein und ändern Siehighlighted code in red in Ihren Domainnamen oder die IP-Adresse Ihres Servers, wenn Sie jetzt keine Domain hinzufügen möchten:

server {
    listen 80;
    server_name your_domain.tld;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}

Wir werden jetzt unsere Konfiguration insites-enabled verknüpfen:

sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/ghost

Wir werden Nginx neu starten:

sudo service nginx restart

Als nächstes erstellen wir einen neuen Benutzer. Diesem Benutzer werden nur die Berechtigungen zum Ausführen von Aufgaben im Verzeichnis/var/www/ghost erteilt. Dies ist eine Sicherheitsmaßnahme. Wenn Ghost kompromittiert wird, ist Ihr System sicher. Dies kann durch Ausführen dieses Befehls erfolgen:

sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost

Wir gewähren Privilegien:

sudo chown -R ghost:ghost /var/www/ghost/

Sie können sich jetzt als Benutzer vonghostanmelden:

su - ghost

Jetzt müssten wir Ghost starten:

cd /var/www/ghost
npm start --production

Sie sollten in der Lage sein, über Port 80 alshttp://<your_server_ip>/ oderhttp://<your_domain_name>/ auf Ihr Blog zuzugreifen.

[[Schritt 5 - Halten Sie den Geist für immer am Laufen]] == Schritt 5 - Halten Sie den Geist mitforever am Laufen

Der nächste Schritt ist, Ghost im Hintergrund laufen zu lassen. forever ist ein Knotenmodul, mit dem Ghost im Hintergrund gestartet und überwacht werden kann, um sicherzustellen, dass es aktiv bleibt. Wenn Ghost abstürzt, wird für immer automatisch eine weitere Instanz von Ghost gestartet.

Installieren Sieforever mit dem folgenden Befehl aus Ihrem Ghost-Verzeichnis, d. H. /var/www/ghost. Bevor Sie den Befehl ausführen, melden Sie sich vom Benutzerghostab und melden Sie sich bei Ihrem Nicht-Root-Benutzer an:

exit
sudo npm install -g forever

Starten Sie Ghost als Benutzer vonghost. Es muss auch aus dem Ghost-Verzeichnis ausgeführt werden:

su - ghost
cd /var/www/ghost
forever start index.js

Die Ausgabe sollte ungefähr so ​​aussehen:

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: index.js

Standardmäßig wird es in die Entwicklungsumgebung geladen. Dies kann durch Ausführen des folgenden Befehls geändert werden:

NODE_ENV=production forever start index.js

forever kann gestoppt werden, indem dies im Ghost-Verzeichnis ausgeführt wird:

forever stop index.js

Mögliche Fehler

Für die folgende Fehlermeldung:

Error: SQLITE_READONLY: attempt to write a readonly database

Starten Sieforever alsroot-Benutzer (geben Sieexit ein, um den aktuellen Benutzer abzumelden):

sudo forever start index.js

Wenn der letzte Befehl angibt, dass er "für immer" nicht finden kann, verwenden Sie den vollständigen Pfad zum Befehl:

sudo /usr/local/bin/forever start index.js

Wenn Sie den folgenden Fehler sehen:

error:   Cannot start forever
error:   script /home/ghost/index.js does not exist.

Sie befinden sich nicht im Verzeichnis/var/www/ghost. Wechseln Sie in dieses Verzeichnis und führen Sie den Befehl erneut aus.

Fazit

Herzliche Glückwünsche! Sie haben Ghost installiert und gelernt, wie Sie Ports mit Nginx proxen. Sie haben auch gelernt, wie Sie Aufgaben mit dem Knotenpaketforeverausführen können.

Mit Ghost können Sie noch viel mehr tun. Ein kennwortgeschütztes Blog ist beispielsweise eine der neuesten Funktionen.

Schauen Sie sich die anderen DigitalOcean-Tutorials zu Ghost an:

Besuchen Sie auch die folgenden Websites, um mehr zu erfahren:

Related