Wie man Ghost Blog Software mit Apache und SSL auf Ubuntu 16.04 installiert

Ghost ist eine leistungsstarke Open-Source-Publishing- und Blog-Plattform, die schö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. Dieses Tutorial zeigt die Installation der Ghost Blog Software, Node.js und Apache als SSL-Proxy-Server auf Ubuntu 16.04.

Nodejs ist eine Open-Source-JavaScript-Laufzeit, 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 läuft. Es bietet eine ereignisgesteuerte Architektur und ein nicht blockierendes I/O-Modell, das es leicht und effizient für Echtzeit-Webanwendungen macht. Das Node.js Projekt wurde 2009 von Ryan Dahl gestartet und erreichte ab heute die Version 6.5.0 (LTS).

Voraussetzungen

  • Ubuntu 16.04.
  • Root-Rechte

Was wir in diesem Tutorial tun werden:

  • Node.js installieren
  • Ghost installieren
  • Geister konfigurieren
  • Apache installieren und den Ghost VirtualHost hinzufügen
  • SSL für Ghost aktivieren

Schritt 1- Node.js auf Ubuntu installieren

Für dieses Tutorial verwenden wir nodejs v4.x. Nodejs können auf viele verschiedene Arten installiert werden, wie 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 für die Installation verwenden, es enthält aktuelle Software und die Verwendung eines Repositories erlaubt es, node.js später einfach zu aktualisieren.

Installieren Sie den Schlüssel des Nodesource-Repository 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 Paket „nodejs“ 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 zur Installation, Veröffentlichung und Verwaltung von Knotenprogrammen.

Überprüfen Sie die node.js und die npm-Version.

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 tragen Sie es mit „cd“ ein:

mkdir -p /var/www/
cd /var/www/

Laden Sie Ghost mit dem Befehl wget herunter und entpacken 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.

Dann gehen Sie in das ghostblog-Verzeichnis und installieren Sie Ghost mit dem Befehl npm:

cd ghostblog/
sudo npm install --production

Schritt 3 – Ghost konfigurieren

Bitte gehen Sie in das Verzeichnis ghostblog und kopieren Sie dann die Beispieldatei der Konfiguration 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 Benutzer wird verklagt, um Ghost . auszuführen:

useradd -d /var/www -s /bin/bash ghost
passwd ghost
TYPE NEW PASSWORD FOR ghost USER

Hinweis:

d = Definiert das Heimatverzeichnis für den Ghost-Benutzer in /var/wwww/.

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 loggen Sie sich in den Benutzer-Ghost ein:

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 Befehl curl überprüfen:

curl -I localhost:2368

Schauen Sie sich den Ghostblog mit Curl an.

Du kannst sehen, dass der Geist läuft – HTTP/1.1 200 OK.

Wir werden Ghost als Service betreiben, um es uns leichter zu machen, Ghost zu starten. Bitte gehen Sie zurück zu sudo/root user, indem Sie „exit“ eingeben und eine neue Datei namens „ghost.service“ im Verzeichnis „/lib/systemd/system/system/ erstellen.

cd /lib/systemd/system/
vim ghost.service

Fügen Sie das System-Skript unten 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ämon neu:

systemctl daemon-reload

Fügen Sie dann ghost hinzu, der beim Booten gestartet werden soll, und starten Sie ghost mit dem Befehl systemctl:

systemctl enable ghost
systemctl start ghost

Überprüfen Sie, ob der Ghost läuft, indem Sie den Port 2368 überprüfen:

netstat -plntu

Ghost mit netstat überprüfen

Schritt 4 – Apache und den Ghost VirtualHost installieren

Installieren Sie den Apache mit dem Befehl apt-get:

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 untenstehende Konfiguration 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 im 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 den Apache neu starten:

sudo a2ensite ghostblog
sudo systemctl restart apache2

Starten Sie ghost neu:

sudo systemctl restart ghost

Test durch Besuch der Domain: http://ghostblog.me

Ghost-Startseite

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“ erzeugen. 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 *

Als nächstes fügen Sie die SSL-Konfiguration zu ghost virtualhost hinzu, indem Sie die Datei „ghostblog.conf“ 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 den Apache neu:

sudo a2enmod ssl headers
sudo systemctl restart apache2

Test

Besuchen Sie http://ghostblog.me, und Sie werden auf die HTTPS/SSL-Seite Ihres Blogs gezwungen.

Ghost installiert mit SSL

Ghost mit Apache und SSL wurde erfolgreich installiert.

Fazit

Nodejs ist eine Open Source Multiplattform Javascript-Laufzeit, um serverseitige Webanwendungen zu erstellen. Es ist leicht und effizient für Echtzeit-Webanwendungen. Ghost ist eine Blogging-Plattform, die in Javascript für Node.js geschrieben wurde. Ghost ist wunderschön gestaltet und benutzerfreundlich. Die intuitive Benutzeroberfläche macht dieses Blogsystem einfach zu bedienen. Ghost kann einzeln 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 nur das apache http_proxy-Modul einrichten und ein SSL-Zertifikat generieren.

Das könnte Dich auch interessieren …