Ghost ist eine leistungsfähige Open-Source-Publishing-Plattform für das moderne Web, das auf der Node.js-Plattform aufbaut. Ghost 2.0 führt viele neue Funktionen ein, darunter einen leistungsstarken neuen Editor, Mehrsprachen-Unterstützung, benutzerdefinierte Homepages, dynamische Routen, benutzerdefinierte Strukturen und vieles mehr.

Ghost ist eine einfache und leichtgewichtige Plattform für Blogger, die sich nur auf das Bloggen konzentrieren möchten und sonst nichts.

Dieses kurzes Tutorial zeigt dir, wie du Ghost 2.0 unter Ubuntu 18.04 mit MariaDB Unterstützung installiert.

Im Gegensatz zu WordPress und anderen Content Management Systemen, die auf PHP basieren, ist Ghost einfach in Design und Funktion. Es werden keine zusätzlichen Pakete und Server benötigt, nur JavaScript.

Um mit der Installation von Ghost zu beginnen, führe die folgenden Schritte aus:

Schritt 1: Installation des Nginx HTTP Server

Damit Ghost CMS auf deinen Server läuft, brauchst du einen Webserver und der Nginx HTTP-Server ist derzeit der beliebteste Open-Source-Webserver, der verfügbar ist. Um den Nginx-Server zu installieren, führe die folgenden Befehle aus:

sudo apt update
sudo apt install nginx

Nach der Installation von Nginx können die folgenden Befehle verwendet werden, um den Nginx-Dienst zu stoppen, zu starten und zu aktivieren, damit er stets mit dem Server startet.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Nachdem Nginx installiert wurde, solltest du testen, ob der Webserver funktioniert, öffne dafür deinen Browser und navigieren zu der URL unten.

http://localhost
Wenn du die obige Seite siehst, dann wurde Nginx erfolgreich installiert.

Schritt 2: Installation des MariaDB Datenbankserver

Ghost benötigt zusätzlich einen Datenbankserver zur Speicherung seiner Inhalte. Wenn du nach einem echten Open-Source-Datenbankserver suchst, dann ist MariaDB ein großartiger Anlaufpunkt. Um MariaDB zu installieren, führen die folgenden Befehle aus:

sudo apt-get install mariadb-server mariadb-client

Nach der Installation von MariaDB können die folgenden Befehle verwendet werden, um Datenbankserver zu stoppen, zu starten und zu aktivieren, damit er stets mit dem Server startet.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Anschließend solltest du den Datenbankserver mit einem Root-Passwort sichern, wenn du während der Installation nicht dazu aufgefordert wurdest. Führe dazu folgenden Befehl aus.

sudo mysql_secure_installation

Wenn du dazu aufgefordert wirst, beantworte die folgenden Fragen, indem du der Anleitung folgst.

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Nun solltest du testen, ob der Datenbankserver erfolgreich installiert wurde. Führe dazu die folgenden Befehle aus.

sudo mysql -u root -p

Wenn du dazu aufgefordert wirst, geben dein Root-Passwort für Datenbankserver ein.

Wenn du einen ähnlichen Bildschirm wie oben angezeigt bekommst, dann wurde der Server erfolgreich installiert

Schritt 4: Ghost-Datenbank erstellen

Nachdem du nun alle Pakete installiert hast, die für die Funktion von Ghost erforderlich sind, fahre mit der Konfiguration der Server fort. Führe zunächst die unten stehenden Befehle aus, um eine leere Ghost-Datenbank zu erstellen.

sudo mysql -u root -p
CREATE DATABASE ghost;
CREATE USER 'ghostuser'@'localhost' IDENTIFIED BY 'deinpasswort';
GRANT ALL ON ghost.* TO 'ghostuser'@'localhost' IDENTIFIED BY 'deinpasswort' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Schritt 5: Installation des Node.js-Pakets

Da Ghost auf Node.js basiert, führe die folgenden Befehle aus, um die Node.js-Pakete aus seinem Repository herunterzuladen.

sudo apt install curl
curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -

Führe als nächstes die folgenden Befehle aus, um Node.js und die erforderlichen Pakete zu installieren, damit Ghost funktioniert.

sudo apt-get install nodejs

Als nächstes führe die folgenden Befehle aus, um das Yarn-Repository einzubinden und zu aktivieren.

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
sudo apt update
sudo apt-get -o Dpkg::Options::="--force-overwrite" install yarn

Schritt 6: Installation und Konfiguration von Ghost

Dazu erstellen wir einen neuen Benutzer-Account namens ghostuser, der zur Installation von Ghost verwendet wird.

Führe dazu die folgenden Befehle aus, um ein neues Benutzerkonto namens ghostuser zu erstellen. Du wirst aufgefordert, ein neues Passwort für das Benutzerkonto vergeben.

sudo adduser ghostuser

Dann erlaube dem neuen Konto, den Befehl sudo auszuführen

sudo usermod -aG sudo ghostuser

Als nächstes, wechselst du mit su – zum ghostuser.

su - ghostuser

Erstelle nun ein neues Rootverzeichnis für den Inhalt von Ghost

sudo mkdir -p /var/www/html/ghost/

Als nächstes die Verzeichnisrechte so ändern, dass der ghostuser es als Eigentümer besitzt.

sudo chown -R ghostuser:ghostuser /var/www/html/ghost
sudo chmod -R 755 /var/www/html/ghost

Wenn npm noch nicht installiert ist, führe die folgenden Befehle aus, um es zu installieren.

sudo yarn global add ghost-cli

Wechsele nun in das Ghost-Rootverzeichnis und führe die folgenden Befehle als ghostuser aus, um Ghost zu installieren.

cd /var/www/html/ghost
ghost install

Damit sollte die Ghost-Installation beginnen. Du wirst aufgefordert, Informationen über die Website-URL und die Datenbankverbindungsinformationen einzugeben, um die Installation abzuschließen.

Checking system Node.js version
✔ Checking logged in user
✔ Checking current folder permissions
✔ Checking operating system compatibility
✔ Checking for a MySQL installation
✔ Checking memory availability
✔ Checking for latest Ghost version
✔ Setting up install directory
✔ Downloading and installing Ghost v2.6.0
✔ Finishing install process
? Enter your blog URL: https://example.com
? Enter your MySQL hostname: localhost
? Enter your MySQL username: ghostuser
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: ghost
✔ Configuring Ghost
✔ Setting up instance
+ sudo useradd --system --user-group ghost
+ sudo chown -R ghost:ghost /var/www/html/ghost/content
✔ Setting up "ghost" system user
? Do you wish to set up "ghost" mysql user? (Y/n)

Gebe Y ein, um den MySQL-Benutzer einzurichten.

✔ Setting up Nginx
? Do you wish to set up SSL? Yes
Enter your email (used for Let's Encrypt notifications) admin@example.com
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 admin@example.com
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/html/ghost/system/files/example.com-ssl.conf
Running sudo command: ln -sf /var/www/html/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
? Do you wish to set up Systemd? Yes
✔ Creating systemd service file at /var/www/html/ghost/system/files/ghost_example-com.service
Ersetze example.com mit deiner eigenen Domain. Wenn du kein SSL hast, solltest du es nicht aktivieren.
✔ Setting up Systemd
? Do you want to start Ghost? Yes
+ sudo 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
+ sudo systemctl is-active ghost_example-com
✔ Validating config
✔ Checking folder permissions
✔ Checking file permissions
✔ Checking content folder ownership
✔ Checking memory availability
+ sudo systemctl start ghost_example-com
✔ Starting Ghost
+ sudo systemctl is-enabled ghost_example-com
+ sudo systemctl enable ghost_example-com --quiet
✔ Enabling Ghost instance startup on server boot

Ghost uses direct mail by default. To set up an alternative email method read our docs at https://ghost.org/mail

------------------------------------------------------------------------------

Ghost was installed successfully! To complete setup of your publication, visit: 

    https://example.com/ghost/

Danach sollte Ghost installiert und einsatzbereit sein. Anschließend kannst du mit der Einrichtung deiner Ghost-Website fortfahren.

Herzlichen Glückwunsch! Du hast Ghost erfolgreich unter Ubuntu installiert.