Procédure
Was ist Node.js?
Node.js ist eine plattformübergreifende Open-Source-Laufzeitumgebung, mit der Sie eine Website oder eine Anwendung erstellen und auf einem Server hosten können und die die Programmiersprache JavaScript verwendet. Auf unseren cPanel L-, cPanel XL-, cPanel 2XL-, cPanel 3XL- und CloudCP-Paketen stellen wir Ihnen den Node.js-Anwendungsmanager zur Verfügung, der es Ihnen ermöglicht, eine Node.js-Anwendung auf Ihrem cPanel-Webhosting-Paket einzurichten. Ihnen stehen die Versionen 6 bis 24 von Node.js zur Verfügung.
Was ist der Phusion Passenger?
Um unseren Kunden eine stabile und robuste Umgebung für Node.js zur Verfügung zu stellen, integrieren wir Ihre Node.js-Anwendungen mit dem Apache-Webserver über das Tool Phusion Passenger.
Wir richten keinen Reverse Proxy ein, und Node.js-Anwendungen können nicht standalone mit einem eigenen Webserver ausgeführt werden. Wenn Sie es gewohnt sind, Ihren Node.js-Server mit einem Befehl wie node server, npm run start oder pm2 start myapp auszuführen, werden Sie dies auf unseren cPanel-Hosting-Paketen nicht tun können. Wenn Sie ein Framework verwenden, erkundigen Sie sich, ob es mit Phusion Passenger kompatibel ist.
Die Ausführung Ihrer Node.js-Anwendung wird von Phusion Passenger verwaltet. Er sorgt dafür, dass Ihre .js-Datei mit der richtigen Version von Node ausgeführt wird, und er erfasst den Aufruf der Funktion listen() von http.Server, um selbst die Verbindung zwischen Ihrer Anwendung und dem Apache-Webserver zu konfigurieren.
Wie installiere ich eine Node.js-Anwendung?
Melden Sie sich bei Ihrer cPanel-Verwaltungsoberfläche an und klicken Sie auf das Symbol"Setup Node.js App".

Auf der darauf folgenden Seite klicken Sie auf die Schaltfläche"Create Application" , um eine neue Anwendung hinzuzufügen.

Füllen Sie dann die Felder entsprechend den Anforderungen Ihrer Anwendung aus:
- Node.js version: Die Version von Node.js, die Ihre Anwendung benötigt.
- Application mode: Hiermit legen Sie fest, wie Ihre Anwendung ausgeführt werden soll, entweder im Entwickler- oder im Produktionsmodus. Dies manipuliert die Umgebungsvariable NODE_ENV und ermöglicht so im Entwicklermodus die Anzeige von Fehlern (was zu Debugging-Zwecken nützlich ist, bei einer Anwendung in der Produktion aber auch problematisch sein kann).
- Application root: Der Speicherort Ihrer Node.js-Anwendung, bezogen auf Ihr FTP-Root. Wir empfehlen Ihnen, Ihre Node.js-Anwendung nicht im Ordner public_html abzulegen.
- Application URL: Die Stamm-URL Ihrer Node.js-Anwendung.
- Application startup file: Der Name der .js-Datei, die Passenger an Node.js übermittelt, um Ihre Anwendung zu starten.

Klicken Sie dann auf die Schaltfläche"Create", nachdem Ihre Anwendung eingerichtet wurde.
Wenn Ihre Startup-Datei noch nicht existiert, wird das Tool sofort diese Datei mit einem Beispielinhalt erstellen. Dieses Beispiel zeigt " It works! " bei allen HTTP-Anfragen an, die mit diesem Beispiel verbunden sind.
Hier ist der Inhalt des Beispielskripts :
var http = require("http"); var server = http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); var message = 'It works!\n', version = 'NodeJS ' + process.versions.node + '\n', response = [message, version].join('\n'); res.end(response); }); server.listen();
Sie können auch die Datei package.json von der Schnittstelle aus bearbeiten, um Abhängigkeiten hinzuzufügen und diese Abhängigkeiten mit der Schaltfläche " Run NPM Install " zu installieren:

Beachten Sie, dass Sie Ihre Anwendung neu starten müssen, wenn die Abhängigkeiten geändert wurden.
Sie können im Abschnitt Umgebungsvariablen auch Umgebungsvariablen festlegen, wenn Ihre Anwendung auf diese angewiesen ist, um bestimmte Einstellungen zu erhalten.
Über das Terminal auf Ihre Anwendung zugreifen
Die Verwendung des Terminals in der Kommandozeile ist ein integraler Bestandteil des Node.js-Ökosystems. Um vom Terminal aus auf die Umgebung Ihrer Anwendung zuzugreifen, stellen Sie eine Verbindung zum Terminal her (über das Webterminal cPanel oder einen SSH-Client) und kopieren Sie den angegebenen Befehl, um in die Umgebung Ihrer Anwendung zu gelangen :

Dadurch wird automatisch die richtige virtuelle Umgebung für Ihre Anwendung aktiviert, die die richtige Version von Node.js und NPM sowie die in der Umgebung installierten Abhängigkeiten enthält (anstatt im Ordner " node_modules " in Ihrem Anwendungsordner installiert zu sein).
Eine Node.js-Anwendung debuggen
Um eine Node.js-Anwendung zu debuggen, können Sie das Apache-Fehlerprotokoll kons ultieren. Die Apache-Fehlerprotokolldatei enthält :
- Die STDOUT- und STDERR-Ausgabe der Node.js-Anwendung.
- Die mit Passenger verbundenen Fehler.
- Die mit Apache verbundenen Fehler.
Wenn Sie den Wert PassengerLogFile in der .htaccess-Datei Ihrer Website manuell eingestellt haben, werden die STDOUT- und STDERR-Ausgabe sowie die mit Passenger verbundenen Fehler an diese Datei statt an die Apache-Logdatei gesendet.
Sie können auch den Wert PassengerFriendlyErrorPages in Ihrer .htaccess-Datei auf on setzen, um Fehler im Zusammenhang mit dem Start Ihrer Node.js-Anwendung direkt im Webbrowser anzuzeigen.
Häufige Fehler bei Node.js
Prozess wird beim Ausführen von npm install angehalten.
Mögliche Gründe: Ihr Prozess kann vom Server gestoppt werden, wenn er über die Laufzeit und/oder die Menge an Ressourcen (CPU, RAM ...) hinaus ausgeführt wird, die in Ihrem Hostingpaket erlaubt sind. Sie können den Verlauf von Prozessabbrüchen über unser Tool " Protokolle " einsehen, das über Ihre cPanel-Schnittstelle verfügbar ist.
Lösung: Sie können den von npm verwendeten RAM-Speicher mit der Umgebungsvariablen NODE_OPTIONS wie folgt begrenzen:
NODE_OPTIONS='--max-old-space-size=2048' npm install.
Dieses Beispiel zeigt beispielsweise eine Beschränkung auf 2048 Mio (2 Gio).
Angegebenes Verzeichnis, das bereits von /home/$USER/public_html/monapp bei der Erstellung aus Setup Node.js App verwendet wurde.
Mögliche Gründe:
- Eine Node.js-, Python- oder Ruby-Anwendung, die im angegebenen Ordner veröffentlicht wurde, existiert bereits.
- DieRoot-Anwendung und die angegebeneURL-Anwendung zeigen auf denselben Ordner.
Lösungen:
- Stellen Sie sicher, dass keine Node.js-, Python- oder Ruby-Anwendung auf dem angegebenen Ordner veröffentlicht ist. Sie können die .htaccess-Datei des betreffenden Ordners über den Dateimanager oder Ihren üblichen FTP-Client überprüfen, um dies schnell zu identifizieren.
- Stellen Sie sicher, dass die Dateien Ihrer Anwendung (die .js-Dateien, package.json ...), die von application root angegeben werden, sich nicht in dem von application URL angegebenen Veröffentlichungsordner befinden. Im Gegensatz zu PHP-Anwendungen müssen und sollten sich die Dateien einer Node.js-Anwendung nicht in public_html befinden.