Procédure
Vad är Node.js?
Node.js är en plattformsoberoende runtime-miljö med öppen källkod som låter dig skapa en webbplats eller applikation och hosta den på en server med hjälp av JavaScript-språket. På våra cPanel L-, cPanel XL-, cPanel 2XL-, cPanel 3XL- och CloudCP-paket tillhandahåller vi Node.js-applikationshanteraren så att du kan konfigurera en Node.js-applikation på ditt cPanel-webbhotellspaket. Node.js-versionerna 6 till 24 är tillgängliga.
Vad är Phusion Passenger?
För att ge våra kunder en stabil och robust miljö för Node.js integrerar vi dina Node.js-applikationer med Apache-webbservern med hjälp av verktyget Phusion Passenger.
Vi sätter inte upp en omvänd proxy, och Node.js-applikationer kan inte köras fristående på sin egen webbserver. Om du är van att köra din Node.js-server med ett kommando som node server, npm run start eller pm2 start myapp kommer du inte att kunna göra det på våra cPanel-värdtjänstpaket. Om du använder ett ramverk ska du kontrollera att det är kompatibelt med Phusion Passenger.
Exekveringen av din Node.js-applikation kommer att hanteras av Phusion Passenger, den kommer att ta hand om att exekvera din .js-fil med rätt version av node, och den kommer att fånga http.Server listen() -funktionsanropet för att konfigurera anslutningen mellan din applikation och Apache-webbservern själv.
Hur installerar jag en Node.js-applikation?
Anslut till ditt cPanel-hanteringsgränssnitt och klicka på ikonen"Setup Node.js App".

På sidan som följer klickar du på knappen"Create Application" för att lägga till en ny applikation.

Fyll sedan i fälten enligt vad som krävs för din applikation:
- Node.js-version: den version av Node.js som din applikation kräver.
- Application mode: här kan du definiera exekveringsläget för din applikation, antingen utvecklarläge eller produktionsläge. Detta manipulerar miljövariabeln NODE_ENV, vilket gör att fel kan visas i utvecklarläget (vilket är användbart för felsökning, men kan också vara problematiskt för en produktionsapplikation).
- Application root: platsen för din Node.js-applikation, i förhållande till din FTP-rot. Vi rekommenderar att du inte placerar din Node.js-applikation i mappen public_html.
- Application URL: rot-URL:en för din Node.js-applikation.
- Application startup file: namnet på den .js-fil som Passenger kommer att skicka till Node.js för att starta din applikation.

Klicka sedan på knappen"Create" när din applikation har konfigurerats.
Om din applikations startfil ännu inte finns kommer verktyget omedelbart att skapa denna fil med exempelinnehåll. Detta exempel kommer att visa " Det fungerar! " på alla HTTP-förfrågningar som är associerade med det.
Här är innehållet i detta exempelskript :
var http = require('http'); var server = http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); var message = "Det fungerar!\n', version = 'NodeJS ' + process.versions.node + '\n', response = [message, version].join('\n'); res.end(response); }); server.listen();
Du kan också redigera filen package.json från gränssnittet för att lägga till beroenden och installera dessa beroenden med hjälp av knappen "Run NPM Install ":

Observera att du måste starta om din applikation om dess beroenden har ändrats.
Du kan också definiera miljövariabler i avsnittet Miljövariabler om din applikation är beroende av dem för att erhålla vissa parametrar.
Åtkomst till din applikation från terminalen
Att använda kommandoradsterminalen är en integrerad del av Node.js-ekosystemet. Om du vill komma åt programmets miljö från terminalen ansluter du till den (från cPanels webbterminal eller från en SSH-klient) och kopierar kommandot som visas för att komma in i programmets miljö:

Denna åtgärd kommer automatiskt att aktivera rätt virtuell miljö för din applikation, inklusive rätt version av Node.js och NPM, samt de beroenden som är installerade i miljön (istället för att installeras i mappen "node_modules " i din applikationsmapp).
Felsökning av en Node.js-applikation
För att felsöka en Node.js-applikation kan du konsultera Apaches fell ogg. Apaches felloggfil innehåller :
- STDOUT- och STDERR-utdata från Node.js-applikationen
- Passagerarrelaterade fel
- Apache-relaterade fel
Om du manuellt har angett värdet PassengerLogFile i webbplatsens .htaccess-fil skickas STDOUT- och STDERR-utdata och Passenger-relaterade fel till den här filen i stället för till Apache-loggfilen.
Du kan också ställa in värdet PassengerFriendlyErrorPages till on i din .htaccess-fil för att visa fel som rör uppstarten av din Node.js-applikation direkt i webbläsaren.
Vanliga Node.js-fel
Processen stoppades när du körde npm install
Möjliga orsaker: Din process kan stoppas av servern om den körs utöver den exekveringstid och/eller mängd resurser (CPU, RAM etc.) som är godkänd för ditt hostingpaket. Du kan se processens stopphistorik med hjälp av vårt verktyg "Loggar " som finns tillgängligt från ditt cPanel-gränssnitt.
Lösning: Du kan begränsa RAM-minnet som används av npm med hjälp av miljövariabeln NODE_OPTIONS enligt följande:
NODE_OPTIONS='--max-old-space-size=2048' npm install
Detta exempel visar till exempel en gräns på 2048 MiB (2 GB).
Angiven katalog används redan av /home/$USER/public_html/monapp när den skapades från Setup Node.js App
Möjliga skäl :
- En Node.js-, Python- eller Ruby-applikation som publiceras i den angivna katalogen finns redan.
- Rotapplikationen och den angivnaURL-applikationen pekar på samma mapp.
Lösning:
- Kontrollera att ingen Node.js-, Python- eller Ruby-applikation är publicerad i den angivna mappen. Du kan kontrollera .htaccess-filen för mappen i fråga från filhanteraren eller din vanliga FTP-klient för att snabbt identifiera detta.
- Kontrollera att dina programfiler (.js, package.json ...) som anges av programroten inte finns i den publiceringsmapp som anges av programmets URL. Till skillnad från PHP-applikationer behöver inte filerna för en Node.js-applikation ligga i public_html och bör inte heller göra det.