So installieren und konfigurieren Sie Ghost unter CentOS 7

Einführung

Ghost ist eine einfache Open-Source-Blogging-Plattform, die einfach zu bedienen ist. Ghost ist vollständig anpassbar, mit vielen verfügbaren Themen.

In diesem Tutorial richten Sie Ghost unter CentOS 7 ein. Sie konfigurieren Nginx auch so, dass Proxy-Anforderungen an Ghost gesendet werden und Ghost als Systemdienst im Hintergrund ausgeführt wird.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

Schritt 1 - Ghost installieren

Zuerst müssen wir Ghost installieren. Ghost wird im Verzeichnis "+ / var / www / ghost +" abgelegt. Dies ist der empfohlene Installationsort.

Laden Sie die neueste Version von Ghost mit + wget + aus dem GitHub-Repository von Ghost herunter:

wget https://ghost.org/zip/ghost-latest.zip

Um das Archiv zu entpacken, installieren Sie zuerst das Programm "+ unzip " mit dem Paketmanager. Es ist immer eine gute Idee, sich vor der Installation eines neuen Programms zu vergewissern, dass das System auf dem neuesten Stand ist. Aktualisieren Sie daher die Pakete und installieren Sie " unzip +" mit den folgenden Befehlen:

sudo yum update -y
sudo yum install unzip -y

Das + -y + Flag in den vorhergehenden Befehlen aktualisiert und installiert Pakete automatisch, ohne den Benutzer um eine Bestätigung zu bitten.

Sobald "+ unzip " installiert ist, entpacken Sie das heruntergeladene Paket in das Verzeichnis " / var / www / ghost ". Erstellen Sie zuerst den Ordner " / var / www +" und entpacken Sie dann die Datei:

sudo mkdir /var/www
sudo unzip -d /var/www/ghost ghost-latest.zip

Wechseln Sie in das Verzeichnis + / var / www / ghost / +:

cd /var/www/ghost/

Installieren Sie dann die Ghost-Abhängigkeiten, aber nur diejenigen, die für die Produktion benötigt werden. Dadurch werden alle Abhängigkeiten übersprungen, die nur von Personen benötigt werden, die Ghost entwickeln.

sudo npm install --production

Sobald dieser Vorgang abgeschlossen ist, wird Ghost installiert. Wir müssen Ghost jedoch einrichten, bevor wir es starten können.

Schritt 2 - Ghost konfigurieren

Ghost verwendet eine Konfigurationsdatei unter + / var / www / ghost / config.js. Diese Datei ist nicht sofort verfügbar, aber die Ghost-Installation enthält die Datei "+ config.example.js +", die wir als Ausgangspunkt verwenden.

Kopieren Sie die Beispielkonfigurationsdatei nach + / var / www / ghost / config.js. Wir kopieren die Datei, anstatt sie zu verschieben, sodass wir eine Kopie der ursprünglichen Konfigurationsdatei haben, falls wir Ihre Änderungen rückgängig machen müssen.

sudo cp config.example.js config.js

Öffnen Sie die Datei zum Bearbeiten:

sudo vi config.js

Wir müssen die von Ghost verwendete URL ändern. Wenn wir dies nicht tun, führen die Links auf dem Blog Besucher zu http://my-ghost-blog.com [my-ghost-blog.com]. Ändern Sie den Wert des Felds "+ url +" in Ihren Domainnamen oder in die IP-Adresse Ihres Servers, wenn Sie momentan keine Domain verwenden möchten.

/var/www/ghost/config.js

...

config = {
   // ### Production
   // When running Ghost in the wild, use the production environment
   // Configure your URL and mail settings here
   production: {
       url: 'http://',
       mail: {},
...

Der Wert "+ url " muss in Form einer URL vorliegen, z. B. " http: // " oder " http: // +". Wenn dieser Wert nicht korrekt formatiert ist, wird Ghost nicht gestartet.

Ghost kann ohne die E-Mail-Einstellungen funktionieren. Sie sind nur erforderlich, wenn Sie die Kennwortwiederherstellung für Ghost-Benutzer unterstützen müssen. Die Konfiguration dieser Einstellung wird in diesem Lernprogramm übersprungen.

Sie können Ghost weiter anpassen, indem Sie den Konfigurationsdetails auf http://ghost.org [der offiziellen Website] folgen.

Speichern Sie die Datei und beenden Sie den Editor.

Starten Sie Ghost mit dem folgenden Befehl, während Sie sich noch im Verzeichnis "+ / var / www / ghost +" befinden:

sudo npm start --production

Die Ausgabe sollte ungefähr so ​​aussehen:

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

WARNING: Ghost is attempting to use a direct method to send email.
It is recommended that you explicitly configure an email service.
Help and documentation can be found at http://support.ghost.org/mail.

Migrations: Creating tables...
...

Ghost is running in production...
Your blog is now available on http://
Ctrl+C to shut down

Ghost lauscht auf Port "+ 2368 +" und nicht auf der öffentlichen Netzwerkschnittstelle, sodass Sie nicht direkt darauf zugreifen können. Lassen Sie uns Nginx vor Ghost einrichten.

Schritt 3 - Konfigurieren von Nginx für Proxy-Anfragen an Ghost

Der nächste Schritt ist die Einrichtung von Nginx für unser Ghost-Blog. Auf diese Weise können Verbindungen über den Port "+ 80 " mit dem Port verbunden werden, auf dem Ghost ausgeführt wird, sodass Benutzer auf Ihr Ghost-Blog zugreifen können, ohne das ": 2368 +" am Ende der Adresse anzufügen. Es fügt auch eine indirekte Ebene hinzu und ermöglicht es Ihnen, Ihr Blog zu skalieren, wenn es wächst.

Wenn Ghost in Ihrem Terminal noch ausgeführt wird, drücken Sie "+ STRG + C +", um die Ghost-Instanz herunterzufahren, bevor Sie fortfahren.

Jetzt konfigurieren wir Nginx. Wechseln Sie zuerst in das Verzeichnis "+ / etc / nginx":

cd /etc/nginx/

Wenn Sie Nginx aus dem CentOS EPEL-Repository installiert haben, wie im vorausgesetzten Lernprogramm gezeigt, verfügen Sie nicht über die Verzeichnisse "+ sites-available" und "+ sites-enabled", die zum Verwalten der Website-Konfigurationen verwendet werden. Erstellen wir sie:

sudo mkdir sites-available
sudo mkdir sites-enabled

Als nächstes erstellen Sie eine neue Datei in + / etc / nginx / sites-available / + mit dem Namen + ghost +:

sudo vi /etc/nginx/sites-available/ghost

Fügen Sie die folgende Konfiguration in die Datei ein und ändern Sie "++" in Ihren Domainnamen oder Ihre Server-IP-Adresse, wenn Sie keine Domain haben:

/ etc / nginx / sites-available / ghost

server {
   listen 80;
   server_name ;
   location / {
   proxy_set_header HOST $host;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_pass         ;
   }
}

Diese Basiskonfiguration sendet alle Anforderungen für diesen Server an das Ghost-Blog, das auf dem Port "+ 2368 +" ausgeführt wird, und legt die entsprechenden HTTP-Header fest, sodass beim Anzeigen Ihrer Ghost-Protokolle die ursprüngliche IP-Adresse Ihrer Besucher angezeigt wird . Weitere Informationen zu dieser Konfiguration finden Sie unter Understanding Nginx HTTP Proxying, Load Balancing, Buffering, und Caching.

Speichern Sie die Datei, beenden Sie den Editor und aktivieren Sie diese Konfiguration, indem Sie einen Symlink für diese Datei im Verzeichnis "+ / etc / nginx / sites-enabled +" erstellen:

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

Nginx wird diese neue Konfiguration erst verwenden, wenn wir die Standardkonfigurationsdatei von Nginx ändern und sie anweisen, die Konfigurationsdateien in den Ordner "+ sites-enabled " aufzunehmen. Außerdem müssen wir die Standardwebsite deaktivieren. Öffnen Sie die Datei " nginx.conf" in Ihrem Editor:

sudo vi nginx.conf

Fügen Sie die folgende Zeile in den + http + - Block ein, um die Konfigurationsdateien in den Ordner + sites-enabled + aufzunehmen:

/etc/nginx/nginx.conf

http {
...
   # Load modular configuration files from the /etc/nginx/conf.d directory.
   # See http://nginx.org/en/docs/ngx_core_module.html#include
   # for more information.
   include /etc/nginx/conf.d/*.conf;

Kommentieren Sie dann den im + http + -Block enthaltenen + server + -Block vollständig aus:

/etc/nginx/nginx.conf

...

   # Load modular configuration files from the /etc/nginx/conf.d directory.
   # See http://nginx.org/en/docs/ngx_core_module.html#include
   # for more information.
   include /etc/nginx/conf.d/*.conf;



   server {
      listen       80 default_server;
      listen       [::]:80 default_server;
      server_name  _;
      root         /usr/share/nginx/html;

      # Load configuration files for the default server block.
      include /etc/nginx/default.d/*.conf;

      location / {
      }

      error_page 404 /404.html;
          location = /40x.html {
      }

      error_page 500 502 503 504 /50x.html;
          location = /50x.html {
      }
...
...

Speichern Sie die Datei und beenden Sie den Editor. Testen Sie die Konfiguration, um sicherzustellen, dass keine Probleme vorliegen:

sudo nginx -t

Sie sehen die folgende Ausgabe, wenn alles korrekt ist:

Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Wenn Sie Fehler sehen, beheben Sie diese und testen Sie die Konfiguration erneut.

Starten Sie Nginx mit einer funktionierenden Konfigurationsdatei neu, um die Änderungen zu übernehmen:

sudo systemctl restart nginx

Bevor wir Ghost erneut starten, erstellen wir ein neues Benutzerkonto, um Ghost auszuführen.

Schritt 4 - Ausführen von Ghost als separater Benutzer

Zur Verbesserung der Sicherheit führen wir Ghost unter einem separaten Benutzerkonto aus. Dieser Benutzer hat nur Zugriff auf das Verzeichnis "+ / var / www / ghost +" und seinen Basisordner. Auf diese Weise minimieren Sie den möglichen Schaden für Ihr System, wenn Ghost kompromittiert wird.

Erstellen Sie einen neuen "+ ghost +" - Benutzer mit dem folgenden Befehl:

sudo adduser --shell /bin/bash

Dann machen Sie diesen neuen Benutzer zum Besitzer des Verzeichnisses + / var / www / ghost +:

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

Stellen wir nun sicher, dass dieser Benutzer Ghost ausführen kann. Melden Sie sich als Benutzer "+ ghost +" an:

sudo su - ghost

Starten Sie jetzt Ghost unter diesem Benutzer und stellen Sie sicher, dass es ausgeführt wird:

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

Sie sollten unter + http: // + auf Ihr Blog zugreifen können. Nginx sendet Anforderungen an Ihre Ghost-Instanz.

Die Dinge funktionieren gut, aber lassen Sie uns sicherstellen, dass Ghost auch in Zukunft funktioniert.

Schritt 5 - Ghost als Systemdienst ausführen

Derzeit läuft Ghost in unserem Terminal. Wenn wir uns abmelden, wird unser Blog geschlossen. Lassen Sie Ghost im Hintergrund laufen und stellen Sie sicher, dass es beim Neustart des Systems neu gestartet wird. Dazu erstellen wir eine Unit-Datei "+ systemd ", die angibt, wie " systemd " Ghost verwalten soll. Drücken Sie " STRG + C ", um Ghost zu beenden, und melden Sie sich vom Benutzerkonto " ghost " ab, indem Sie " STRG + D +" drücken.

Erstellen Sie eine neue Datei für die Definition der Unit-Datei "+ systemd +":

sudo vi /etc/systemd/system/ghost.service

Fügen Sie der Datei die folgende Konfiguration hinzu, die den Namen des Dienstes, die Gruppe und den Benutzer für den Dienst sowie Informationen zum Start enthält:

/etc/systemd/system/ghost.service

[Unit]
Description=
After=network.target

[Service]
Type=simple

WorkingDirectory=
User=
Group=

ExecStart=/usr/bin/npm start --production
ExecStop=/usr/bin/npm stop --production
Restart=always
SyslogIdentifier=Ghost

[Install]
WantedBy=multi-user.target

Wenn Sie mit den Unit-Dateien "+ systemd +" nicht vertraut sind, lesen Sie das Tutorial Understanding Systemd Units and Unit Files, mit denen Sie schnell auf den neuesten Stand gebracht werden können.

Speichern Sie die Datei und beenden Sie den Editor. Dann aktivieren und starten Sie den Dienst:

sudo systemctl enable ghost.service
sudo sytemctl start ghost.service

Besuchen Sie erneut "+ http: // +" und Sie werden Ihr Blog sehen.

Fazit

In diesem Lernprogramm haben Sie Ghost installiert, Nginx so konfiguriert, dass es Anfragen an Ghost als Proxy sendet, und sichergestellt, dass Ghost als Systemdienst ausgeführt wird. Mit Ghost können Sie jedoch noch viel mehr tun. Schauen Sie sich diese Tutorials an, um mehr über die Verwendung Ihres neuen Blogs zu erfahren: