Procédure
Czym jest Node.js?
Node.js to wieloplatformowe środowisko uruchomieniowe o otwartym kodzie źródłowym, które umożliwia tworzenie stron internetowych lub aplikacji i hostowanie ich na serwerze przy użyciu języka JavaScript. W naszych pakietach cPanel L, cPanel XL, cPanel 2XL, cPanel 3XL i CloudCP zapewniamy menedżera aplikacji Node.js, dzięki czemu można skonfigurować aplikację Node.js w pakiecie hostingowym cPanel. Dostępne są wersje Node.js od 6 do 24.
Czym jest Phusion Passenger?
Aby zapewnić naszym klientom stabilne i solidne środowisko dla Node.js, integrujemy aplikacje Node.js z serwerem internetowym Apache za pomocą narzędzia Phusion Passenger.
Nie konfigurujemy odwrotnego serwera proxy, a aplikacje Node.js nie mogą działać samodzielnie na własnym serwerze internetowym. Jeśli jesteś przyzwyczajony do uruchamiania serwera Node.js za pomocą polecenia takiego jak node server, npm run start lub pm2 start myapp, nie będziesz w stanie tego zrobić na naszych pakietach hostingowych cPanel. Jeśli korzystasz z frameworka, sprawdź, czy jest on kompatybilny z Phusion Passenger.
Wykonanie aplikacji Node.js będzie zarządzane przez Phusion Passenger, który zadba o wykonanie pliku .js z poprawną wersją node i przechwyci wywołanie funkcji http.Server listen() w celu skonfigurowania połączenia między aplikacją a samym serwerem WWW Apache.
Jak zainstalować aplikację Node.js?
Połącz sięz interfejsem zarządzania cPanel i kliknij ikonę"Setup Node.js App".

Na następnej stronie kliknij przycisk"Utwórz aplikację" , aby dodać nową aplikację.

Następnie wypełnij pola zgodnie z wymaganiami aplikacji:
- Wersja Node.js: wersja Node.js wymagana przez aplikację.
- Tryb aplikacji: pozwala zdefiniować tryb wykonywania aplikacji, tryb deweloperski lub tryb produkcyjny. Manipuluje to zmienną środowiskową NODE_ENV, umożliwiając wyświetlanie błędów w trybie deweloperskim (co jest przydatne do celów debugowania, ale może być również problematyczne dla aplikacji produkcyjnej).
- Korzeń aplikacji: lokalizacja aplikacji Node.js względem katalogu głównego FTP. Zalecamy, aby nie umieszczać aplikacji Node.js w folderze public_html.
- Adres URL aplikacji: główny adres URL aplikacji Node.js.
- Application startup file: nazwa pliku .js, który Passenger wyśle do Node.js w celu uruchomienia aplikacji.

Następnie kliknij przycisk"Utwórz" po skonfigurowaniu aplikacji.
Jeśli plik startowy aplikacji jeszcze nie istnieje, narzędzie natychmiast utworzy ten plik z przykładową zawartością. Ten przykład wyświetli komunikat "To działa! " na wszystkich powiązanych z nim żądaniach HTTP.
Oto zawartość tego przykładowego skryptu:
var http = require('http'); var server = http.createServer(function(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); var message = 'Działa!\n', version = 'NodeJS ' + process.versions.node + '\n', response = [message, version].join('\n'); res.end(response); }); server.listen();
Możesz także edytować plik package.json z poziomu interfejsu, aby dodać zależności i zainstalować je za pomocą przycisku "Run NPM Install ":

Należy pamiętać, że konieczne jest ponowne uruchomienie aplikacji, jeśli jej zależności zostały zmodyfikowane.
Możesz także zdefiniować zmienne środowiskowe w sekcji Zmienne środowiskowe, jeśli Twoja aplikacja polega na nich w celu uzyskania określonych parametrów.
Dostęp do aplikacji z terminala
Korzystanie z terminala wiersza poleceń jest integralną częścią ekosystemu Node.js. Aby uzyskać dostęp do środowiska aplikacji z terminala, połącz się z nim (z terminala internetowego cPanel lub z klienta SSH) i skopiuj pokazane polecenie, aby wejść do środowiska aplikacji:

Ta czynność automatycznie aktywuje prawidłowe środowisko wirtualne dla aplikacji, w tym prawidłową wersję Node.js i NPM, a także zależności zainstalowane w środowisku (zamiast instalowania w folderze "node_modules " w folderze aplikacji).
Debugowanie aplikacji Node.js
Aby debugować aplikację Node.js, można sprawdzić dziennik błędów Apache. Plik dziennika błędów Apache zawiera :
- Wyjście STDOUT i STDERR z aplikacji Node.js
- Błędy związane z pasażerem
- Błędy związane z Apache
Jeśli ręcznie ustawiłeś wartość PassengerLogFile w pliku .htaccess swojej witryny, dane wyjściowe STDOUT i STDERR oraz błędy związane z Passengerem są wysyłane do tego pliku zamiast do pliku dziennika Apache.
Można również ustawić wartość PassengerFriendlyErrorPages na on w pliku .htaccess, aby wyświetlać błędy związane z uruchomieniem aplikacji Node.js bezpośrednio w przeglądarce internetowej.
Typowe błędy Node.js
Proces zatrzymany podczas uruchamiania npm install
Możliwe przyczyny: Twój proces może zostać zatrzymany przez serwer, jeśli działa poza czasem wykonania i/lub ilością zasobów (CPU, RAM itp.) autoryzowanych dla Twojego pakietu hostingowego. Możesz sprawdzić historię zatrzymań procesów za pomocą naszego narzędzia "Logi " dostępnego w interfejsie cPanel.
Rozwiązanie: Możesz ograniczyć pamięć RAM używaną przez npm za pomocą zmiennej środowiskowej NODE_OPTIONS w następujący sposób:
NODE_OPTIONS='--max-old-space-size=2048' npm install
Ten przykład pokazuje na przykład limit 2048 MiB (2 GB).
Określony katalog jest już używany przez /home/$USER/public_html/monapp po utworzeniu z Setup Node.js App
Możliwe przyczyny :
- Aplikacja Node.js, Python lub Ruby opublikowana w określonym katalogu już istnieje.
- Aplikacja główna i określonaaplikacja URL wskazują na ten sam folder.
Rozwiązanie:
- Sprawdź, czy w określonym folderze nie została opublikowana aplikacja Node.js, Python lub Ruby. Możesz sprawdzić plik .htaccess dla danego folderu za pomocą menedżera plików lub zwykłego klienta FTP, aby szybko to zidentyfikować.
- Upewnij się, że pliki aplikacji (.js, package.json ...) wskazane przez root aplikacji nie znajdują się w folderze publikacji wskazanym przez adres URL aplikacji. W przeciwieństwie do aplikacji PHP, pliki aplikacji Node.js nie muszą i nie powinny znajdować się w public_html.