cPanel tárhelyeinken Node.js alkalmazást is futtathat. Az alkalmazásokat a CloudLinux Node.js Selector kezeli, amely a cPanelben Setup Node.js App néven érhető el. Itt választhatja ki a Node.js verziót, és itt indíthatja, állíthatja le és indíthatja újra az alkalmazást. Az alkalmazást a Phusion Passenger futtatja, így nem kell külön portot nyitnia vagy folyamatkezelőt (például pm2-t) használnia.
Általános áttekintést a Node.js tárhelyről ebben a blogbejegyzésben talál.
Az alkalmazás létrehozása
- Jelentkezzen be a cPanelbe, és a Szoftver (Software) részben kattintson a Setup Node.js App ikonra.
- Kattintson a Create Application gombra.
- Töltse ki a mezőket:
- Node.js version: a használni kívánt Node.js verzió. Válassza azt, amelyre az alkalmazását fejlesztette.
- Application mode:
Production(éles) vagyDevelopment(fejlesztői) mód. Ez aNODE_ENVkörnyezeti változó értéke lesz. - Application root: az alkalmazás könyvtára a tárhelyen, a saját könyvtárához (
/home/felhasznalo) viszonyítva, példáulnodeapp. Ne apublic_htmlkönyvtárat adja meg, mert így a forráskód nyilvánosan letölthető lenne. - Application URL: a domain és az útvonal, ahol az alkalmazás elérhető lesz, például
pelda.huvagypelda.hu/api. - Application startup file: az alkalmazás belépési fájlja, például
app.js. - Passenger log file: ha megad egy fájlt, például
/home/felhasznalo/logs/nodeapp.log, ide kerülnek az alkalmazás kimenetei és hibaüzenetei.
- Kattintson a Create gombra.
A cPanel létrehozza a könyvtárat, és ha a belépési fájl még nem létezik, egy egyszerű „It works!” mintaalkalmazást tesz bele. Az Application URL címen ellenőrizheti, hogy működik-e.
Az alkalmazás feltöltése
Töltse fel az alkalmazás fájljait az Application root könyvtárba a Fájlkezelővel vagy FTP-n. Egy minimális Express-alkalmazás így néz ki:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Helló a Node.js alkalmazásból!');
});
app.listen(process.env.PORT || 3000);
A portot nem kell beállítania: a Passenger átveszi az alkalmazás listen() hívását, és a beérkező kéréseket az alkalmazáshoz irányítja.
Fontos: a Passenger csak CommonJS modulokat (require) tud közvetlenül betölteni. Ha az alkalmazása ES modulokat (import) használ, hozzon létre egy app_wrapper.cjs fájlt az alábbi tartalommal, és ezt adja meg belépési fájlként:
(() => import('./app.js'))();
Csomagok telepítése
A függőségeket az alkalmazás könyvtárában lévő package.json fájl alapján telepítheti:
- Töltse fel a
package.jsonfájlt az Application root könyvtárba. - A Setup Node.js App felületen kattintson az alkalmazás melletti szerkesztés (ceruza) ikonra.
- Kattintson a Run NPM Install gombra.
Fontos: a Node.js Selector a csomagokat az alkalmazás könyvtárán kívül, egy külön virtuális környezetben tárolja, és az alkalmazás könyvtárában csak egy node_modules nevű hivatkozást (symlinket) helyez el. Ezért ne töltsön fel saját node_modules könyvtárat. Ha ilyen könyvtár vagy fájl van az alkalmazás gyökerében, a telepítés hibával leáll. Törölje, és telepítse a csomagokat a fenti módon.
A Run JS Script gombbal a package.json fájl scripts részében megadott parancsokat (például build) futtathatja.
Környezeti változók
Az alkalmazás szerkesztőoldalán az Add Variable gombbal környezeti változókat adhat meg, például adatbázis-hozzáférést vagy API-kulcsot. Az alkalmazás ezeket a process.env objektumon keresztül éri el, így a jelszavakat nem kell a forráskódba írnia. Mentés után indítsa újra az alkalmazást.
Újraindítás változtatás után
A Passenger a már betöltött alkalmazást futtatja tovább, ezért a fájlok módosítása után az alkalmazást újra kell indítani. Ehhez kattintson a Restart gombra, vagy az alkalmazáslista Actions oszlopában az újraindítás ikonra. Itt állíthatja le (Stop) és törölheti is az alkalmazást.
Parancssori használat (SSH)
SSH-hozzáféréssel rendelkező csomagokban (cPanel Prémium és Pro) az alkalmazás virtuális környezetébe a terminálból is beléphet. A pontos parancsot a Setup Node.js App felület az alkalmazás szerkesztőoldalának tetején mutatja, és így néz ki:
source /home/felhasznalo/nodevenv/nodeapp/20/bin/activate && cd /home/felhasznalo/nodeapp
Ezután a node és az npm parancs a kiválasztott verzióval fut, így például az npm install is használható. A belépést az SSH-ról ez a cikk írja le.
Hibakeresés
- Ha az alkalmazás nem indul el, nézze meg a Passenger log file mezőben megadott naplófájlt.
- Fejlesztés közben a
Developmentmód részletesebb hibaüzeneteket jelenít meg. Éles oldalon ne hagyja bekapcsolva. - Az alkalmazás a tárhelyfiók erőforrás-limitjein belül fut. Ha memóriahiány miatt leáll, ellenőrizze az erőforrás-használatot.