Ghost ist eine leistungsstarke Open-Source-Publishing- und Blog-Plattform, die wunderschön gestaltet und einfach zu bedienen ist. Ghost ist in Javascript geschrieben und verwendet node.js als Laufzeitumgebung. Die erste Ghost-Version wurde 2013 unter MIT-Lizenz veröffentlicht und wird ständig aktualisiert. Diese Anleitung zeigt die Installation der Ghost Blog-Software, Node.js und Apache als SSL-Proxyserver auf Ubuntu 16.04.
Nodejs ist eine Open-Source-JavaScript-Laufzeitumgebung, die auf der V8-JavaScript-Engine (v4) von Chrome zur Entwicklung serverseitiger Webanwendungen basiert. Nodejs ist eine plattformübergreifende Laufzeitumgebung, die unter OS X, Microsoft Windows, Linux und FreeBSD ausgeführt werden kann. Es bietet eine ereignisgesteuerte Architektur und ein nicht blockierendes E/A-Modell, das es leicht und effizient für Echtzeit-Webanwendungen macht. Das Node.js-Projekt wurde 2009 von Ryan Dahl gestartet und hat heute die Version 6.5.0 (LTS) erreicht.
Voraussetzungen
- Ubuntu 16.04
- Root-Rechte
Was wir in diesem Tutorial tun werden:
- Node.js installieren
- Ghost installieren
- Ghost konfigurieren
- Installieren Sie Apache und fügen Sie den Ghost VirtualHost hinzu
- SSL für Ghost aktivieren
Schritt 1 – Node.js auf Ubuntu installieren
Für dieses Tutorial verwenden wir nodejs v4.x. Nodejs kann auf viele verschiedene Arten installiert werden, z. B. Installation aus der Quelle oder Installation aus dem Ubuntu-Repository. Ich werde das nodejs-Repository von nodesecure https://deb.nodesource.com/node_4.x verwenden Für die Installation enthält es aktuelle Software und die Verwendung eines Repositorys ermöglicht es, node.js später einfach zu aktualisieren.
Installieren Sie den Nodesource-Repository-Schlüssel mit dem folgenden Befehl:
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
Fügen Sie dann das nodejs-Repository hinzu, indem Sie die folgenden Befehle ausführen:
sudo echo 'deb https://deb.nodesource.com/node_4.x xenial main' > /etc/apt/sources.list.d/nodesource.list
sudo echo 'deb-src https://deb.nodesource.com/node_4.x xenial main' >> /etc/apt/sources.list.d/nodesource.list
Aktualisieren Sie das Repository:
sudo apt-get update
Jetzt können wir das „nodejs“-Paket installieren, das node.js und seine Abhängigkeiten auf dem Server installiert:
sudo apt-get install -y nodejs
Überprüfen Sie nun die nodejs-Version, um sicherzustellen, dass die Installation erfolgreich war:
node --version
Überprüfen Sie die npm-Version:
npm --version
npm ist ein Paketmanager zum Installieren, Veröffentlichen und Verwalten von Knotenprogrammen.
Schritt 2 – Ghost-Blog installieren
Wir werden Ghost im Verzeichnis "/var/www/" installieren und die neueste Version von Ghost verwenden. Bitte erstellen Sie ein neues Verzeichnis „www“ in /var und geben Sie es mit „cd“ ein:
mkdir -p /var/www/
cd /var/www/
Laden Sie Ghost mit dem Befehl wget herunter und extrahieren Sie es dann in ein Verzeichnis namens "ghostblog" :
wget https://ghost.org/zip/ghost-latest.zip
unzip -d ghostblog ghost-latest.zip
HINWEIS :-d :Erstellt automatisch das Verzeichnis.
Wechseln Sie dann in das Ghostblog-Verzeichnis und installieren Sie Ghost mit dem npm Befehl:
cd ghostblog/
sudo npm install --production
Schritt 3 - Ghost konfigurieren
Bitte gehen Sie in das Ghostblog-Verzeichnis und kopieren Sie dann die Konfigurationsbeispieldatei nach "config.js"
cd /var/www/ghostblog/
cp config.example.js config.js
Als nächstes fügen Sie einen neuen Benutzer "ghost" hinzu. Dieser Nutzer wird verklagt, Ghost auszuführen:
useradd -d /var/www -s /bin/bash ghost
passwd ghost
TYPE NEW PASSWORD FOR ghost USER
Hinweis:
-d =Definiert das Home-Verzeichnis für den Ghost-Benutzer in /var/www/.
-s =Definiert die Shell für den Ghost-Benutzer.
Ändern Sie nun den Besitzer des Ghost-Installationsverzeichnisses auf den Benutzer "ghost".
chown -R ghost:ghost /var/www/ghostblog
Testen Sie den Ghost-Blog, indem Sie den Befehl npm als Ghost-Benutzer ausführen. Bitte melden Sie sich beim Benutzer Ghost an:
su - ghost
und gehen Sie in das Installationsverzeichnis und starten Sie Ghost:
cd ghostblog/
npm start --production
Ghost ist installiert und läuft auf localhost mit Port 2368. Wir können es mit dem Curl-Befehl überprüfen:
curl -I localhost:2368
Sie können sehen, dass Ghost ausgeführt wird - HTTP/1.1 200 OK .
Wir werden Ghost as Service betreiben, um uns den Start von Ghost zu erleichtern. Bitte kehren Sie zum sudo/root-Benutzer zurück, indem Sie „exit“ eingeben, und erstellen Sie eine neue Datei namens „ghost.service“ im Verzeichnis „/lib/systemd/system/“.
cd /lib/systemd/system/
vim ghost.service
Fügen Sie das folgende systemd-Skript ein:
[Unit] Description=ghost After=network.target [Service] Type=simple # Ghost installation Directory WorkingDirectory=/var/www/ghostblog 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
Als nächstes laden Sie den systemd-Daemon neu:
systemctl daemon-reload
Fügen Sie dann Ghost hinzu, das beim Booten gestartet werden soll, und starten Sie Ghost mit dem Befehl systemctl:
systemctl enable ghost
systemctl start ghost
Überprüfen Sie, ob Ghost ausgeführt wird, indem Sie den Port 2368 überprüfen:
netstat -plntu
Schritt 4 – Installieren Sie Apache und den Ghost VirtualHost
Installieren Sie Apache mit dem apt-get-Befehl:
sudo apt-get install apache2
Erstellen Sie nach Abschluss der Installation eine neue Datei für den virtuellen Ghost-Host im Verzeichnis "/etc/apache2/sites-available/".
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Fügen Sie die Konfiguration unten ein:
<VirtualHost *:80> #Domain Name ServerName ghostblog.me ServerAlias www.ghostblog.me #HTTP proxy/gateway server ProxyRequests off ProxyPass / http://127.0.0.1:2368/ ProxyPassReverse / http:/127.0.0.1:2368/ </VirtualHost>
Speichern und beenden.
Aktivieren Sie das HTTP-Proxy-Modul in Apache mit dem Befehl a2enmod wie unten gezeigt:
sudo a2enmod proxy proxy_http
Schließlich müssen wir den virtuellen Ghost-Host aktivieren und dann Apache neu starten:
sudo a2ensite ghostblog
sudo systemctl restart apache2
Ghost neu starten:
sudo systemctl restart ghost
Testen Sie, indem Sie die Domain besuchen:http://ghostblog.me
Schritt 5 – SSL für Ghost aktivieren
Um SSL auf Apache zu aktivieren, stellen Sie bitte sicher, dass die OpenSSL-Bibliothek auf dem System installiert ist. Wir werden einen neuen Schlüssel und eine neue crt-Datei im Verzeichnis „/etc/apache2/certs“ generieren. Zuerst erstellen wir neue Verzeichniszertifikate:
sudo mkdir -p /etc/apache2/certs
Und generieren Sie den Zertifikatsschlüssel mit dem folgenden Befehl:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/certs/ghostblog.key -out /etc/apache2/certs/ghostblog.crt
Bitte ändern Sie die Berechtigung der Zertifikatsdatei:
sudo cd /etc/apache2/certs/
sudo chmod 600 *
Fügen Sie als Nächstes die SSL-Konfiguration zu Ghost Virtualhost hinzu, indem Sie die "ghostblog.conf"-Datei bearbeiten.
sudo cd /etc/apache2/sites-available/
sudo vim ghostblog.conf
Fügen Sie das neue Konfigurationsskript unten ein:
<VirtualHost *:80> ServerName ghostblog.me ServerAlias www.ghostblog.me # Force http to https Redirect permanent / https://ghostblog.me/ # ProxyRequests off # ProxyPass / http://127.0.0.1:2368/ # ProxyPassReverse / http:/127.0.0.1:2368/ </VirtualHost> <VirtualHost *:443> ServerName ghostblog.me SSLEngine on SSLCertificateFile /etc/apache2/certs/ghostblog.crt SSLCertificateKeyFile /etc/apache2/certs/ghostblog.key ProxyPass / http://127.0.0.1:2368/ ProxyPassReverse / http:/127.0.0.1:2368/ ProxyPreserveHost On RequestHeader set X-Forwarded-Proto "https" </VirtualHost>
Speichern Sie die Datei und beenden Sie vim.
Aktivieren Sie das OpenSSL-Apache-Modul und starten Sie Apache neu:
sudo a2enmod ssl headers
sudo systemctl restart apache2
Testen
Besuchen Sie http://ghostblog.me , und Sie werden zur HTTPS/SSL-Site Ihres Blogs gezwungen.
Ghost mit Apache und SSL wurde erfolgreich installiert.
Schlussfolgerung
Nodejs ist eine plattformübergreifende Open-Source-Javascript-Laufzeit zum Erstellen serverseitiger Webanwendungen. Es ist leicht und effizient für Echtzeit-Webanwendungen. Ghost ist eine in Javascript geschriebene Blogging-Plattform für Node.js. Ghost ist wunderschön gestaltet und benutzerfreundlich. Die intuitive Benutzeroberfläche macht dieses Blog-System einfach zu bedienen. Ghost kann eigenständig oder mit einem Webserver wie Apache oder Nginx installiert werden. Sie können Ghost mit OpenSSL sichern. Die Konfiguration von Ghost mit Apache und OpenSSL ist einfach, Sie müssen lediglich das http_proxy-Modul von Apache einrichten und ein SSL-Zertifikat generieren.