1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Installieren Sie Ghost auf einem Infomaniak-Hosting
Dieser Leitfaden begleitet Sie bei der Installation von Ghost auf Infomaniak, einer idealen Plattform für Blogs (regelmäßiges Schreiben, redaktionelles Format) und Content-fokussierte Publikationswebsites wie Substack oder Medium.
Basierend auf Node.js und unter Verwendung von Markdown für das Schreiben, zeichnet sich Ghost durch seine Leichtigkeit aus, während WordPress, obwohl flexibler und universeller, schwerer ist.
Für zusätzliche Hilfe kontaktieren Sie einen Partner oder starten Sie eine kostenlose Ausschreibung — erfahren Sie auch mehr über die Rolle des Hosting-Anbieters.
Voraussetzungen
- Installieren Sie eine leere Node.js-Website auf einem Infomaniak-Webhosting.
- Erstellen Sie einen SSH-Zugang.
- Erstellen Sie eine Datenbank.
- Besitzen Sie eine gültige und funktionierende E-Mail-Adresse (insbesondere die Funktionen für vergessenes Passwort).
- Stoppen Sie Ihre Node.JS-Anwendung, bevor Sie die folgenden Schritte ausführen!
Installation von Ghost
Dafür:
- Melden Sie sich per SSH auf dem Server an (Hilfe benötigt?).
Klonen und Ausführen des Installationsskripts (führen Sie diese Befehle nacheinander aus):
git clone https://github.com/Infomaniak/hosting-tools.git cd hosting-tools/h3-ghost bash ./install.sh
Das Skript wird nun:
- Ihnen einige Fragen stellen (wie die URL Ihrer Website, die Datenbankinformationen usw.)…
- Ghost automatisch herunterladen und konfigurieren…
- Einige Minuten in Anspruch nehmen — seien Sie geduldig!
Beantworten Sie die Fragen sorgfältig unter Verwendung der Datenbankdetails, die Sie zuvor notiert haben. Schließen Sie das Terminal nicht, bevor es fertig ist!
Konfigurieren Sie Ihr Hosting (über das Infomaniak-Panel)
Sobald das Skript abgeschlossen ist, gehen Sie zu Ihrem Infomaniak-Kontrollpanel:
- Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
- Klicken Sie direkt auf den Produktnamen des betreffenden Produkts.
- Klicken Sie auf Verwalten unter Erweiterte Einstellungen:
- Klicken Sie auf die Registerkarte Node.js, um auf die Einstellungen zuzugreifen.
Geben Sie im Feld Ausführungsbefehl ein:
/srv/customer/node_modules/ghost-cli/bin/ghost run
- Stellen Sie sicher, dass die Portnummer
3000
ist. - Befehlskasten für build : Deaktivieren Sie diesen.
- Klicken Sie auf die Schaltfläche Speichern unten auf der Seite:
- Auf der Hauptseite klicken Sie auf die Schaltfläche Start (oder Neustart, wenn bereits ausgeführt).
- Beobachten Sie die Protokolle, die die Erstellung der Datenbank und den Start der Anwendung anzeigen:
Fertig! Greifen Sie auf Ihren Ghost-Blog zu
Gehen Sie dann zur URL Ihrer Website, um zu beginnen:
- Öffnen Sie Ihren Browser und gehen Sie zu
https://votresite.com/ghost
(ersetzen Sievotresite.com
durch Ihre aktuelle Domain). - Beim ersten Mal:
- Sie erstellen ein Administratorkonto (Ihre Anmeldedaten für den Blog)…
- Anschließend können Sie mit dem Schreiben von Artikeln beginnen!
Benutzer-/E-Mail-Konfiguration
Um den ersten Benutzer zu erstellen, fügen Sie /ghost
zur URL Ihrer Website hinzu (z. B. https://ghost.domain.xyz/ghost
) und folgen Sie dem Assistenten.
Sie können auch die "Support-Adresse des Mitgliederportals" konfigurieren: Wenn neue Mitglieder sich anmelden möchten, sendet das Portal die Bestätigung des Double-Opt-In von einer bestimmten Adresse. Standardmäßig handelt es sich dabei um die "noreply"-Adresse Ihres Domänennamens. Um sie zu aktualisieren, navigieren Sie zu "Einstellungen", "Mitgliedschaft", "Portal-Einstellungen", "Anpassen" und "Konto-Seite":
Beheben einer technischen Unverträglichkeit zwischen Ghost und MariaDB
Es gibt ein Kompatibilitätsproblem zwischen Ghost und der MariaDB-Datenbank. Dies führt zu folgender Art von Fehler:
[2025-01-01 12:54:28] ERROR "GET /ghost/api/admin/posts/6834625e35802b06f1496305/?formats=mobiledoc%2Clexical&include=tags%2Cauthors%2Cauthors.roles%2Cemail%2Ctiers%2Cnewsletter%2Ccount.conversions%2Ccount.clicks%2Csentiment%2Ccount.positive_feedback%2Ccount.negative_feedback" 400 27ms
Could not understand request.
Error ID:
8f2b0d90-3a30-11f0-a25f-fd9c83e1cf02
Error Code:
ER_BAD_FIELD_ERROR
----------------------------------------
Error: select `posts`.*, (with `k` as (select `member_id` from `members_subscription_created_events` where posts.id = members_subscription_created_events.attribution_id union select `member_id` from `members_created_events` where posts.id = members_created_events.attribution_id) select count(*) from `k`) as `count__conversions`, `posts`.*, (select count(distinct `members_click_events`.`member_id`) from `members_click_events` inner join `redirects` on `members_click_events`.`redirect_id` = `redirects`.`id` where posts.id = redirects.post_id) as `count__clicks`, `posts`.*, (select COALESCE(ROUND(AVG(score) * 100), 0) from `members_feedback` where posts.id = members_feedback.post_id) as `count__sentiment`, `posts`.*, (select count(*) from `members_feedback` where posts.id = members_feedback.post_id AND members_feedback.score = 0) as `count__negative_feedback`, `posts`.*, (select sum(`score`) from `members_feedback` where posts.id = members_feedback.post_id) as `count__positive_feedback` from `posts` where (`posts`.`type` = 'post' and `posts`.`status` in ('draft', 'published', 'scheduled', 'sent')) and `posts`.`id` = '2834125e33802b06e1433305' limit 1 - Unknown column 'posts.id' in 'where clause'
at Child.<anonymous> (/srv/customer/sites/ghost.domain.xyz/versions/5.120.2/core/server/models/base/plugins/crud.js:194:31)
at Packet.asError (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/packets/packet.js:740:17)
at Query.execute (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/commands/command.js:29:26)
at Connection.handlePacket (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/base/connection.js:475:34)
at PacketParser.onPacket (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/base/connection.js:93:12)
at PacketParser.executeStart (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket.<anonymous> (/srv/customer/sites//versions/5.120.2/node_modules/mysql2/lib/base/connection.js:100:25)
at Socket.emit (node:events:518:28)
at addChunk (node:internal/streams/readable:561:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
at Readable.push (node:internal/streams/readable:392:5)
at TCP.onStreamRead (node:internal/stream_base_commons:189:23)
Einige von Ghost generierte SQL-Abfragen, die gemeinsame Tabellenausdrücke (CTE) verwenden, die in skalare Unterabfragen eingebettet sind, verursachen HTTP 400
-Fehler, wenn sie auf MariaDB ausgeführt werden. Diese Abfragen sind in MySQL 8 gültig, das CTE in skalaren Unterabfragen unterstützt, aber nicht in MariaDB bis zur Version 10.6.
Ein Patch ist verfügbar, um das Verhalten von Ghost anzupassen und diese Fehler zu vermeiden (nehmen Sie den offiziellen Leitfaden zur Kenntnis).
Um diesen Patch zu verwenden, geben Sie diesen Befehl ein:
cd current
curl -L https://gist.githubusercontent.com/reneluria/8cbbfbc001e542c77d6d5887fbafe5d3/raw/65e0ce31753b4687d0eb67fc030734a35d3ffbad/ghost-post.patch | patch -p0