Node.js alkalmazás létrehozása cPanelben (Setup Node.js App)

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

  1. Jelentkezzen be a cPanelbe, és a Szoftver (Software) részben kattintson a Setup Node.js App ikonra.
  2. Kattintson a Create Application gombra.
  3. 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) vagy Development (fejlesztői) mód. Ez a NODE_ENV kö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ául nodeapp. Ne a public_html kö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.hu vagy pelda.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.
  4. 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:

  1. Töltse fel a package.json fájlt az Application root könyvtárba.
  2. A Setup Node.js App felületen kattintson az alkalmazás melletti szerkesztés (ceruza) ikonra.
  3. 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 Development mó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.