Ghost ist eine moderne Source-Publishing-Plattform, die auf der Node.js-Plattform aufbaut. Es ist vollständig anpassbar und einfach zu verwenden, sodass Sie Ihre Inhalte fast ohne Lernkurve veröffentlichen können.
In diesem Tutorial zeigen wir Ihnen, wie Sie einen sicheren Ghost-Blog auf einem Ubuntu 18.04-Server mit Nginx als Proxy, einem kostenlosen SSL-Zertifikat von Let’s Encrypt, der neuesten LTS-Version von Node.js und MySQL/MariaDB als Datenbank-Backend bereitstellen .
Voraussetzungen #
Als Voraussetzungen, um diesem Tutorial zu folgen, benötigen Sie:
- Laut den offiziellen Ghost-Systemanforderungen benötigen Sie mindestens 1 GB RAM. Wenn Sie einen Server mit weniger als 1 GB RAM haben, können Sie eine Auslagerungsdatei erstellen.
- Ein Domänenname, der auf die IP Ihres öffentlichen Servers verweist. In diesem Tutorial verwenden wir
example.com
. - Nginx wird installiert, indem Sie How To Install Nginx on Ubuntu 18.04 befolgen.
- Firewall konfiguriert, indem Sie How To Set Up a Firewall with UFW on Ubuntu 18.04 befolgen. Stellen Sie sicher, dass die Ports
80
sind und443
sind geöffnet.
Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.
Installieren von Node.js und Yarn #
Zum Zeitpunkt der Erstellung dieses Artikels ist die empfohlene Node.js-Version für Ghost v8 Carbon LTS. Wir installieren Node.js aus dem NodeSource-Repository.
Aktivieren Sie das NodeSource-Repository für Node.js v8 mit dem folgenden curl
Befehl:
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
Installieren Sie Node.js, indem Sie Folgendes eingeben:
sudo apt install nodejs
Weitere Installationsmethoden finden Sie in unserem How To Install Node.js on Ubuntu 18.04guide. Um Garn zu installieren, aktivieren Sie zuerst das Garn-Repository auf Ihrem System mit den folgenden Befehlen:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
Sobald das Repository aktiviert ist, installieren Sie Garn mit:
sudo apt update
sudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn
Installieren von MySQL #
Ghost unterstützt MySQL-, MariaDBand-SQLite-Datenbanken. In diesem Tutorial verwenden wir MySQL, die empfohlene Datenbank, wenn Sie Ghost im Produktionsmodus ausführen.
Installieren Sie das MySQL-Paket mit dem folgenden Befehl:
sudo apt install mysql-server
Führen Sie die mysql_secure_installation
aus Befehl zur Verbesserung der Sicherheit der MySQL-Installation:
sudo mysql_secure_installation
Sie werden aufgefordert, das VALIDATE PASSWORD PLUGIN
zu konfigurieren die verwendet wird, um die Stärke der Passwörter der MySQL-Benutzer zu testen. Es gibt drei Stufen der Kennwortvalidierungsrichtlinie:niedrig, mittel und stark. Drücken Sie ENTER
wenn Sie das Plugin zur Passwortvalidierung nicht einrichten möchten.
Bei der nächsten Eingabeaufforderung werden Sie aufgefordert, ein Passwort für den MySQL-Root-Benutzer festzulegen.
Sobald Sie das Root-Passwort festgelegt haben, fordert Sie das Skript außerdem auf, den anonymen Benutzer zu entfernen, den Zugriff des Root-Benutzers auf den lokalen Computer zu beschränken und die Testdatenbank zu entfernen. Sie sollten mit Y
antworten (ja) auf alle Fragen.
Als nächstes müssen wir die Authentifizierungsmethode von auth_socket
ändern zu mysql_native_password
, damit das Ghost-Installationsprogramm auf unseren MySQL-Server zugreifen kann. Melden Sie sich dazu als Root-Benutzer beim MySQL-Server an:
sudo mysql
und führen Sie die folgende Abfrage aus, die dem MySQL-Root-Benutzer ein Passwort setzt, wenn er mysql_native_password
verwendet Methode:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_pasword';
FLUSH PRIVILEGES;
Stellen Sie sicher, dass Sie very_strong_pasword
ändern mit einem starken Passwort.
Installieren von Ghost-CLI #
Wir installieren Ghost mit dem offiziellen Ghost-CLI-Dienstprogramm. Mit diesem Dienstprogramm können Sie Ghost mit einem einzigen Befehl installieren oder aktualisieren.
Ghost CLI ist als npm-Paket verfügbar. Der folgende Befehl installiert Ghost CLI global auf Ihrem Ubuntu-System:
sudo yarn global add ghost-cli
Ghost-Installationsverzeichnis # wird erstellt
Wir laden Ghost herunter und installieren es im Verzeichnis /var/www/ghost
Verzeichnis, das der empfohlene Installationsspeicherort ist.
Um das Verzeichnis zu erstellen, geben Sie Folgendes ein:
sudo mkdir -p /var/www/ghost
Ändern Sie den Eigentümer des Verzeichnisses auf Ihren Benutzer:
sudo chown $USER:$USER /var/www/ghost
$USER
ist eine Umgebungsvariable, die Ihren Benutzernamen enthält.
Legen Sie die richtigen Verzeichnisberechtigungen fest:
sudo chmod 775 /var/www/ghost
Installieren von Ghost #
Nachdem Sie Ghost CLI installiert haben und alle Voraussetzungen erfüllt sind, können wir mit der Installation beginnen.
Wechseln Sie zu /var/www/ghost
Verzeichnis.
cd /var/www/ghost
Um die Installation zu starten, führen Sie ghost install
aus , das Ghost installiert und konfiguriert, Nginx als Reverse-Proxy konfiguriert und die Website mit einem kostenlosen Let’s-Encrypt-SSL-Zertifikat sichert.
ghost install
✔ Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
System checks failed with message: 'Linux version is not Ubuntu 16'
Some features of Ghost-CLI may not work without additional configuration.
For local installs we recommend using `ghost install local` instead.
? Continue anyway? (y/N) y
Das Installationsprogramm überprüft Ihr System und druckt einige Warnungen, wie oben gezeigt. Geben Sie y
ein um fortzufahren und das Installationsprogramm wird dann Ghost herunterladen und installieren:
ℹ Checking operating system compatibility [skipped]
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v1.24.9
✔ Finishing install process
Als nächstes werden Sie aufgefordert, Ihre Blog-URL und Ihre MySQL-Informationen festzulegen. Geben Sie den Root-Benutzernamen und das Passwort ein, die wir in Installing MySQL
eingerichtet haben Abschnitt und verwenden Sie den Standarddatenbanknamen ghost_prod
.
? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: root
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost_prod
Das Installationsprogramm erstellt einen Systembenutzer namens ghost
und Sie fragen, ob Sie einen Ghost-MySQL-Benutzer erstellen möchten, geben Sie Yes
ein .
✔ Configuring Ghost
✔ Setting up instance
Running sudo command: chown -R ghost:ghost /var/www/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? Yes
✔ Setting up "ghost" mysql user
Als nächstes fragt Sie das Installationsprogramm, ob Sie Nginx einrichten möchten. Bestätigen Sie, indem Sie Yes
eingeben .
? Do you wish to set up Nginx? Yes
✔ Creating nginx config file at /var/www/ghost/system/files/example.com.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com.conf /etc/nginx/sites-available/example.com.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
Running sudo command: nginx -s reload
✔ Setting up Nginx
Sobald Nginx eingerichtet ist, werden Sie vom Installationsprogramm gefragt, ob Sie SSL einrichten möchten. Bestätigen Sie, indem Sie Yes
eingeben und der Konfigurationsassistent fordert Sie auf, Ihre E-Mail-Adresse einzugeben, und generiert dann ein kostenloses SSL-Zertifikat von Let’s Encrypt für Ihre Domain und konfiguriert Nginx.
? Do you wish to set up SSL? Yes
? Enter your email (used for Let's Encrypt notifications) [email protected]
Running sudo command: mkdir -p /etc/letsencrypt
Running sudo command: ./acme.sh --install --home /etc/letsencrypt
Running sudo command: /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain example.com --webroot /var/www/ghost/system/nginx-root --reloadcmd "nginx -s reload" --accountemail [email protected]
Running sudo command: openssl dhparam -out /etc/nginx/snippets/dhparam.pem 2048
Running sudo command: mv /tmp/ssl-params.conf /etc/nginx/snippets/ssl-params.conf
✔ Creating ssl config file at /var/www/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/ghost/system/files/example.com-ssl.conf /etc/nginx/sites-available/example.com-ssl.conf
Running sudo command: ln -sf /etc/nginx/sites-available/example.com-ssl.conf /etc/nginx/sites-enabled/example.com-ssl.conf
Running sudo command: nginx -s reload
✔ Setting up SSL
Als nächstes fragt Sie das Installationsprogramm, ob Sie einen systemd-Dienst einrichten möchten. Geben Sie Y
ein zu akzeptieren und das Installationsprogramm erstellt einen neuen systemd-Dienst namens ghost_example-com und ermöglicht es ihm, beim Booten zu starten:
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/ghost/system/files/ghost_example-com.service
Running sudo command: ln -sf /var/www/ghost/system/files/ghost_example-com.service /lib/systemd/system/ghost_example-com.service
Running sudo command: systemctl daemon-reload
✔ Setting up Systemd
Schließlich richtet das Installationsprogramm die Datenbank ein und fragt, ob Sie Ghost starten möchten, geben Sie Yes
ein .
Running sudo command: /var/www/ghost/current/node_modules/.bin/knex-migrator-migrate --init --mgpath /var/www/ghost/current
✔ Running database migrations
? Do you want to start Ghost? Yes
Running sudo command: systemctl is-active ghost_example-com
✔ Ensuring user is not logged in as ghost user
✔ Checking if logged in user is directory owner
✔ Checking current folder permissions
Running sudo command: systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
Running sudo command: systemctl start ghost_example-com
✔ Starting Ghost
Running sudo command: systemctl is-enabled ghost_example-com
Running sudo command: systemctl enable ghost_example-com --quiet
✔ Starting Ghost
You can access your publication at https://example.com
Next, go to your admin interface at https://example.com/ghost/ to complete the setup of your publication
Ghost uses direct mail by default
To set up an alternative email method read our docs at https://docs.ghost.org/docs/mail-config
Schließen Sie das Ghost-Setup # ab
Öffnen Sie Ihren Browser, gehen Sie zu Ihrer Ghost-Admin-Oberfläche unter https://example.com/ghost/
und Ihnen wird folgender Bildschirm angezeigt:
Um loszulegen, klicken Sie auf Create your account
Schaltfläche.
Sie werden zum Bildschirm Konto erstellen weitergeleitet, wo Sie Ihren Blog-Titel sowie Ihren vollständigen Namen, Ihre E-Mail-Adresse und Ihr Passwort eingeben müssen:
Nachdem Sie die Details ausgefüllt haben, klicken Sie auf Invite your team
Schaltfläche.
Auf diesem Bildschirm werden Sie aufgefordert, die E-Mail-Adressen Ihrer Mitarbeiter einzugeben. Sie können einfach auf I'll do this later, take me to my blog!
klicken Link und Sie werden zum Ghost-Dashboard weitergeleitet:
Von hier aus können Sie neue Beiträge erstellen, Benutzer hinzufügen und die Ghosts-Konfiguration ändern.