Kennisbank
1.000 veelgestelde vragen, 500 tutorials en uitlegvideo's. Hier vind je alleen maar oplossingen!
Installeer Ghost op een Infomaniak-hostingomgeving
Deze handleiding begeleidt u bij de installatie van Ghost op Infomaniak, een ideaal platform voor blogs (regelmatig schrijven, redactionele vorm) en websites die zich richten op content, zoals Substack of Medium.
Ghost is gebaseerd op Node.js en maakt gebruik van Markdown voor het schrijven. Het kenmerkt zich door zijn gebruiksgemak, terwijl WordPress, hoewel flexibeler en veelzijdiger, complexer is.
Vereisten
- Installeer een lege Node.js-website op een Infomaniak-webhosting.
- Maak een SSH-toegang aan.
- Maak een database aan.
- Zorg ervoor dat u een geldig en werkend e-mailadres heeft (vooral voor de functie om een vergeten wachtwoord opnieuw in te stellen).
- Stop uw Node.JS-applicatie voordat u de volgende stappen uitvoert!
Installatie van Ghost
Hiervoor:
- Log in op de server via SSH (Hulp nodig?).
Clone en voer het installatiescript uit (voer deze commando's achter elkaar uit):
git clone https://github.com/Infomaniak/hosting-tools.git cd hosting-tools/h3-ghost bash ./install.sh
Het script zal nu:
- Een aantal vragen stellen (zoals de URL van uw website, de databasegegevens, enz.)…
- Ghost automatisch downloaden en configureren…
- Een paar minuten duren – wees geduldig!
Beantwoord de vragen zorgvuldig en gebruik de databasegegevens die u eerder hebt genoteerd. Sluit het terminalvenster niet voordat het proces is voltooid!
Configureer uw hosting (via het Infomaniak-beheerpaneel)
Zodra het script is voltooid, gaat u naar uw Infomaniak-beheerpaneel:
- Klik hier om toegang te krijgen tot het beheer van uw product in het Infomaniak-beheerpaneel (Hulp nodig?).
- Klik rechtstreeks op de naam van het betreffende product.
- Klik op Beheren onder Geavanceerde instellingen:

- Klik op het tabblad Node.js om toegang te krijgen tot de instellingen.
Voer in het veld Uitvoeringsopdracht het volgende in:
/srv/customer/node_modules/ghost-cli/bin/ghost run- Controleer of het poortnummer
3000is. - Bij de opdracht build: schakel deze uit.
- Klik op de knop Opslaan onderaan de pagina:

- Op de hoofdpagina klikt u op de knop Start (of Herstart, als het al actief is).
- Volg de logbestanden om de creatie van de database en het opstarten van de applicatie te volgen:

Klaar! Ga naar uw Ghost-blog
Ga vervolgens naar de URL van uw website om aan de slag te gaan:
- Open uw browser en ga naar
https://votresite.com/ghost(vervangvotresite.comdoor uw huidige domeinnaam). - De eerste keer:
- U maakt een administratoraccount aan (uw inloggegevens voor de blog)...
- Daarna kunt u beginnen met het schrijven van artikelen!
Gebruikersconfiguratie / E-mail
Om de eerste gebruiker aan te maken, voegt u /ghost toe aan de URL van uw website (bijvoorbeeld https://ghost.domain.xyz/ghost) en volgt u de wizard.
U kunt ook het "ondersteuningsadres van het ledenportaal" configureren: wanneer nieuwe leden zich willen aanmelden, stuurt het portaal de bevestiging van de dubbele opt-in vanaf een bepaald adres. Standaard is dit het "noreply"-adres van uw domein. Om dit te wijzigen, gaat u naar "Instellingen", "Lidmaatschap", "Portaalinstellingen", "Aanpassen" en "Accountpagina":
Los een technisch compatibiliteitsprobleem tussen Ghost en MariaDB op
Er is een compatibiliteitsprobleem tussen Ghost en de MariaDB-database. Dit leidt tot het volgende type fout:
[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)Sommige door Ghost gegenereerde SQL-query's die gebruikmaken van Common Table Expressions (CTE's) die zijn ingebed in scalaire subquery's, veroorzaken HTTP 400-fouten wanneer ze op MariaDB worden uitgevoerd. Deze query's zijn geldig in MySQL 8, dat CTE's in scalaire subquery's ondersteunt, maar niet in MariaDB tot versie 10.6.
Er is een patch beschikbaar om het gedrag van Ghost aan te passen en deze fouten te voorkomen (lees de officiële handleiding).
Om deze patch te gebruiken, voert u het volgende commando uit:
cd current
curl -L https://gist.githubusercontent.com/reneluria/8cbbfbc001e542c77d6d5887fbafe5d3/raw/65e0ce31753b4687d0eb67fc030734a35d3ffbad/ghost-post.patch | patch -p0Voor verdere hulp kunt u contact opnemen met een partner of een gratis offerte aanvragen – u kunt ook meer lezen over de rol van de hostingprovider.
Link naar deze veelgestelde vragen: https://faq.infomaniak.com/2519
Is deze veelgestelde vragenlijst nuttig geweest?