Jak zainstalować i używać Node.js na serwerze Smarthost Aby móc korzystać z Node.js wymagany jest dostęp SSH. Dostęp można włączyć poprzez Panel Abonenta https://www.smarthost.pl/panel/login dla wszystkich oferowanych pakietów hostingowych. Należy kliknąć ikonę koła zębatego przy usłudze, a następnie przycisk Włącz SSH. Pakiet nie może być w wersji testowej (musi być opłacony).
Instalacja Nodejs
1. Łączymy się z SSH używając portu podanego w panelu abonenta. Możemy w tym celu użyć programu Putty.
2. Wpisujemy
cd
i wciskamy enter
3. Wybieramy interesującą nas wersję nodejs z repozytorium https://nodejs.org/dist .
Na potrzeby tego poradnika użyta zostanie wersja nodejs v21.
4.Pobieramy wybraną wersję nodejs poprzez terminal przy użyciu komendy:
wget https://nodejs.org/dist/latest-v21.x/node-v21.1.0-linux-x64.tar.xz
5. Następnie pobraną paczkę należy rozpakować:
tar -xJf node-v21.1.0-linux-x64.tar.xz
6. Możemy zmienić nazwę wypakowanego katalogu na bardziej przyjazną poleceniem:
mv node-v21.1.0-linux-x64 nodejs
7. Tworzymy katalog bin we własnym katalogu domowym
mkdir bin
8. Kopiujemy tam aplikację Node:
cp ./nodejs/bin/node ./bin
9. Wchodzimy do katalogu bin:
cd ./bin
10. Tworzymy dowiązanie symboliczne:
ln -s ../nodejs/lib/node_modules/npm/bin/npm-cli.js npm
11. Node i npm są zainstalowane, możemy wpisać:
node –version
Powinno ukazać się:
v21.1.0
Natomiast dla polecenia:
npm –version
Ukazuje się:
10.2.0
Polecenia node i npm będą działały z każdego katalogu, dzięki umieszczeniu w katalogu bin.
Uruchamianie aplikacji
Na początek należy umieścić aplikację nodejs w dowolnym katalogu na hostingu.
Następnie przechodzimy do katalogu, w którym umieściliśmy aplikację i wpisujemy:
nohup node aplikacja.js &
Dzięki & aplikacja będzie uruchomiona w tle, natomiast nohup sprawi, że aplikacja będzie działała po wylogowaniu.
Alternatywnie:
- Wpisujemy polecenie screen i zatwierdzamy enterem
- Uruchamiamy naszą aplikację np. node aplikacja.js
- Wciskamy ctrl a
- Następnie wciskamy d
- Nasz screen przejdzie do pracy w tle
- Będzie można do niego wrócić poprzez polecenie screen -x
Wyłączanie aplikacji
Wpisujemy:
pkill node
i wciskamy enter.
Alternatywnie:
- Wracamy do screen poprzez screen -x
- Zamykamy naszą aplikację poleceniem process.exit()
- Możemy zamknąć screen poleceniem exit
Przekierowanie aplikacji Node.js na wybraną domenę
Umieszczamy następujące reguły w pliku .htaccess (plik ten tworzymy w katalogu domeny np. public_html/domena-klienta.pl):
DirectoryIndex disabled
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:PORT/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:PORT/$1 [P,L]
Zamiast PORT wpisujemy liczbę z zakresu 49152 do 65534. Jeżeli port jest zajęty przez innego Klienta, wybieramy kolejny dopóki aplikacja nie będzie na nim działać. Należy również pamiętać, aby taki sam port ustawić w aplikacji Node.js.
Wystarczy teraz wejść na naszą domenę, a ukaże nam się strona serwowana przez Node.js.
Przekierowanie na bezpieczne połączenie https z SSL cPanel
Możemy też przekierować ruch z serwerem na bezpieczne połączenie https. Uwaga! Serwer Node.js uruchamiamy jako http, a nie https. Połączenie https zapewnia nasz serwer Apache. Certyfikat cPanel generuje się automatycznie po dodaniu domeny poprzez Domeny dodatkowe w cPanelu, nie musisz więc martwić się instalacją i konfiguracją certyfikatu SSL.
Użyj następującej zawartości pliku .htaccess aby wymusić przekierowanie (zmieniając PORT na liczbę z zakresu podanego powyżej):
DirectoryIndex disabled
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule ^$ http://127.0.0.1:PORT/ [P,L]
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:PORT/$1 [P,L]
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Obsługa WebSockets
Aby protokół ws:// działał prawidłowo, należy utworzyć reguły w .htaccess, przykładowo dla biblioteki socket.io należy dodać poniższe linijki pod linijką „RewriteEngine On” (zmieniając PORT na wybraną wcześniej liczbę i nie usuwając już istniejących zapisów w pliku htaccess):
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:PORT/$1 [P,L]
Uruchomienie Node.js z cPanel
Zalecamy uruchamiać aplikacje Node.js z poziomu cPanel. Więcej informacji na ten temat znajduje się w naszym wpisie na blogu: https://www.smarthost.pl/blog/uruchomienie-node-js-w-cpanel
Załóż bezpłatne konto testowe na serwerze Smarthost.pl i sprawdź jak działa Node.js.
Załóż testowe konto hostingowe z obsługą Node.js
- Luka we wtyczce Litespeed Cache - 10 września, 2024
- Co się stanie, gdy moja domena wygaśnie? Odnowienie wygasłej domeny - 13 sierpnia, 2024
- Luka we wtyczce Backup Migration - 12 grudnia, 2023