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, obnpm
installiert 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 Abschnittproduction
ind 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/ghost
befinden, 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 vonghost
anmelden:
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 Benutzerghost
ab 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 Knotenpaketforever
ausfü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:
-
Ghost.org - Ghost-Website
-
Ghost Documentation - Offizielle Ghost-Dokumentation
-
Ghost Slack Page - Ghost's Slack-Seite, um Hilfe von echten Leuten aus der Ghost-Community zu erhalten