Linux

Cách cài Node.js trên VPS Ubuntu chi tiết năm 2026

SSH vào VPS Ubuntu mới, việc đầu tiên với một dev backend là cài Node.js. Không phải cứ `apt install nodejs` là xong, bản trong kho Ubuntu thường cũ hơn nhiều phiên bản LTS hiện tại, và bạn sẽ vấp ngay khi cần một tính năng ES2024 hay API mới của runtime. Bài này đi qua ba cách cài Node.js trên VPS Ubuntu 24.04: qua NodeSource (khuyên dùng cho production), qua nvm (cho máy dev, chuyển đổi version), và build từ binary khi bạn muốn kiểm soát hoàn toàn. Mỗi cách đều có lệnh kiểm tra, và cuối bài là cấu hình pm2 để chạy app production.

  • Tóm tắt nhanh:
  • NodeSource cung cấp bản Node.js LTS mới nhất (Node.js 22.x vào đầu 2026) cho Ubuntu 24.04, cài bằng 2 lệnh.
  • nvm cho phép cài và chuyển đổi nhiều phiên bản Node.js trên cùng một VPS, không cần sudo.
  • Bản build từ binary (tarball) phù hợp khi bạn muốn đặt Node.js ở thư mục riêng, không đụng vào hệ thống.
  • Sau cài đặt, dùng pm2 để chạy app production: tự khởi động cùng hệ thống, giữ log và monitor.

Yêu cầu trước khi bắt đầu

Bạn cần một VPS chạy Ubuntu 24.04 LTS (bản 22.04 cũng dùng được các lệnh này) với user có quyền sudo. Nếu bạn mới tạo VPS, hãy SSH vào bằng user root hoặc user sudo đã cấu hình sẵn. Kiến thức tối thiểu: biết dùng terminal, chạy lệnh với sudo, và hiểu khái niệm PATH.

  • VPS Ubuntu 24.04 hoặc 22.04, đã cập nhật (sudo apt update && sudo apt upgrade -y).
  • User sudo non-root (khuyên dùng) hoặc root.
  • Kết nối internet từ VPS để tải package.
  • Nếu chưa có VPS, bạn có thể thuê VPS Linux NVMe với IPv4 riêng tại Việt Nam, rồi tự chọn Ubuntu 24.04 trong quá trình cài đặt.

Vì sao không nên dùng apt install nodejs?

Kho package mặc định của Ubuntu 24.04 (universe) cung cấp Node.js 18.x. Đến đầu 2026, Node.js 18 đã hết hạn hỗ trợ bảo mật (EOL vào tháng 4/2025), và Node.js 20.x cũng sắp bước vào giai đoạn cuối vòng đời. Nếu bạn cài bằng apt, bạn sẽ dính bản cũ, thiếu bản vá bảo mật quan trọng, và một số package npm mới có thể yêu cầu engine cao hơn.

NodeSource là một kho package riêng (third-party repository) do đội ngũ Node.js vận hành. Nó luôn cập nhật bản LTS mới nhất (Node.js 22.x 'Jod' vào thời điểm 2026) và cài qua apt, nên việc nâng cấp sau này rất dễ: chỉ cần sudo apt upgrade. Đây là lựa chọn hợp lý nhất cho VPS production.

Bước 1 - Cài Node.js LTS qua NodeSource

Cách này dùng script chính thức của NodeSource để thêm kho apt, sau đó cài bằng apt. Script sẽ tự nhận diện Ubuntu 24.04 (codename noble) và thêm đúng kho.

cd ~
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

Lệnh đầu tải script setup và chạy với quyền sudo. Cờ -E giữ lại biến môi trường hiện tại, cần thiết cho một số trường hợp proxy. Lệnh thứ hai cài Node.js kèm npm (npm được đóng gói chung với Node.js từ bản 16 trở đi).

Sau khi cài, kiểm tra phiên bản:

node -v
npm -v

Kết quả mong đợi là v22.x.x (hoặc số phiên bản LTS mới nhất tại thời điểm bạn cài, có thể là v24.x nếu Node.js 24 đã lên LTS vào cuối 2026) và 10.x.x (hoặc mới hơn). Nếu bạn thấy phiên bản cũ hơn hẳn (v18, v16), kho NodeSource đã không được thêm đúng, hãy kiểm tra lại output của script lúc chạy.

Một lưu ý: script này cũng cài build-essential (gcc, make) nếu chưa có, để sau này bạn có thể build các package npm có native addon (như bcrypt, sharp). Đừng xóa gói này nếu app của bạn dùng các thư viện đó.

Bước 2 - Nâng cấp npm và cài yarn/pnpm (tùy chọn)

npm đi kèm Node.js thường không phải bản mới nhất. Nâng cấp npm lên bản mới nhất để tránh lỗi khi cài package:

sudo npm install -g npm@latest

Nếu dự án dùng yarn (bản classic 1.x) hoặc pnpm, cài qua corepack có sẵn trong Node.js:

sudo corepack enable
corepack prepare yarn@stable --activate
corepack prepare pnpm@latest --activate

Corepack là công cụ đi kèm Node.js, quản lý các package manager. Từ Node.js 25 trở đi, corepack không còn đi kèm mặc định (theo quyết định của đội ngũ Node.js), nên nếu bạn dùng bản mới hơn 24 thì cài yarn/pnpm trực tiếp qua npm: sudo npm install -g yarn pnpm.

Bước 3 - Cài Node.js bằng nvm (cho máy dev / đa phiên bản)

nvm (Node Version Manager) cho phép bạn cài nhiều phiên bản Node.js song song và chuyển đổi bằng một lệnh. Cách này hữu ích khi bạn chạy nhiều dự án, mỗi dự án cần một phiên bản Node khác nhau. Với VPS production, nvm ít cần hơn, nhưng nếu bạn dùng VPS như môi trường staging hoặc CI runner, nvm rất tiện.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

Cài xong, nạp nvm vào shell hiện tại (hoặc đăng xuất rồi SSH vào lại):

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Kiểm tra nvm hoạt động và cài Node.js LTS:

nvm --version
nvm install --lts
node -v

Để đặt phiên bản mặc định cho mỗi lần mở shell:

nvm alias default 'lts/*'

Điểm khác biệt: nvm cài Node.js vào ~/.nvm, không cần sudo, và không đụng vào hệ thống. Nếu bạn cài cả NodeSource và nvm trên cùng một VPS, lệnh node sẽ trỏ tới bản nvm đã kích hoạt. Muốn dùng bản hệ thống, chạy nvm use system.

Bước 4 - Cài Node.js từ binary (tarball)

Cách này tải bản build sẵn từ nodejs.org và giải nén vào một thư mục, rồi thêm vào PATH. Phù hợp khi bạn không muốn thêm kho apt của bên thứ ba (NodeSource) vào hệ thống, hoặc muốn đặt Node.js ở một vị trí riêng (ví dụ /opt/node).

Truy cập nodejs.org/download để lấy link tarball mới nhất của bản LTS. Tại thời điểm đầu 2026, bản LTS là Node.js 22.x:

cd /tmp
curl -fsSL https://nodejs.org/dist/v22.13.0/node-v22.13.0-linux-x64.tar.xz -o node.tar.xz
sudo mkdir -p /opt/node
sudo tar -xJf node.tar.xz -C /opt/node --strip-components=1

Lưu ý: số phiên bản v22.13.0 trong lệnh trên chỉ là ví dụ. Hãy kiểm tra phiên bản LTS mới nhất tại thời điểm cài và thay cho khớp, hoặc dùng NodeSource/nvm để khỏi phải lo vụ này.

Thêm vào PATH bằng cách tạo file trong /etc/profile.d:

echo 'export PATH=/opt/node/bin:$PATH' | sudo tee /etc/profile.d/nodejs.sh
source /etc/profile.d/nodejs.sh
node -v

Cần thêm quyền cho npm nếu dùng user thường (vì /opt/node thuộc root):

sudo chown -R $(whoami) /opt/node

Cách này cho bạn một cài đặt Node.js sạch, không phụ thuộc apt, nhưng bạn phải tự cập nhật thủ công khi có bản vá bảo mật. Vì vậy, với VPS production, NodeSource vẫn là lựa chọn tiện hơn.

Bước 5 - Chạy ứng dụng Node.js production với pm2

pm2 là process manager phổ biến nhất cho Node.js. Nó giữ cho ứng dụng của bạn chạy liên tục, tự khởi động lại khi crash, và tự khởi động cùng hệ thống khi VPS reboot. Cài qua npm:

sudo npm install -g pm2

Giả sử ứng dụng của bạn nằm ở /var/www/myapp với file khởi động là app.js (hoặc lệnh npm start):

cd /var/www/myapp
pm2 start app.js --name myapp
pm2 save

Lệnh pm2 save lưu danh sách process hiện tại để pm2 khôi phục sau khi reboot. Sau đó cấu hình pm2 tự khởi động cùng hệ thống:

pm2 startup systemd

Lệnh này sẽ in ra một dòng lệnh (thường bắt đầu bằng sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u youruser --hp /home/youruser), bạn chạy dòng đó để kích hoạt. Kiểm tra trạng thái:

pm2 status
pm2 logs myapp --lines 50

Sau khi chạy, bạn sẽ thấy process myapp với trạng thái online. Log lỗi và log chuẩn được pm2 lưu ở ~/.pm2/logs/, dùng để chẩn đoán khi app crash.

Nếu ứng dụng của bạn là một API hoặc service nội bộ, thường bạn sẽ đặt Nginx làm reverse proxy trước Node.js để xử lý SSL, gzip, và giới hạn request. Bài cài đặt Nginx làm reverse proxy trên VPS chi tiết 2026 đi sâu phần này.

Xử lý lỗi thường gặp

Lỗi EACCES khi cài package npm global
Khi chạy npm install -g mà gặp lỗi permission, nghĩa là thư mục global của npm thuộc root (thường xảy ra khi cài Node.js từ binary). Cách xử lý nhanh: cài lại npm với quyền user bằng cách đổi owner thư mục prefix:

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
source ~/.profile

Bản Node.js cài qua apt bị cũ
Nếu bạn lỡ cài bằng apt install nodejs và thấy phiên bản cũ (v18), hãy gỡ rồi cài lại qua NodeSource:

sudo apt remove -y nodejs npm
sudo apt autoremove -y
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

npm install thư viện native bị lỗi (node-gyp)
Lỗi này thường do thiếu build tool. Cài lại build-essential:

sudo apt install -y build-essential python3

Với Ubuntu 24.04, Python 3.12 là bản mặc định, đáp ứng yêu cầu của node-gyp hiện tại. Sau đó chạy lại npm install trong thư mục dự án.

Câu hỏi thường gặp

Cài Node.js trên VPS Ubuntu bằng cách nào nhanh nhất?

Nhanh nhất là qua NodeSource: chạy script setup rồi cài bằng apt, tổng cộng 2 lệnh. Cách này cho bản LTS mới nhất và dễ nâng cấp sau này bằng sudo apt upgrade.

Nên dùng NodeSource hay nvm cho VPS production?

NodeSource cho production vì nó cài vào hệ thống, quản lý qua apt, và dễ tự động hóa bằng Ansible hoặc cloud-init. nvm phù hợp cho máy dev hoặc CI runner nơi bạn cần chuyển đổi nhiều phiên bản Node.js.

Ubuntu 24.04 hỗ trợ Node.js phiên bản nào?

Kho apt mặc định của Ubuntu 24.04 có Node.js 18.x (đã EOL). NodeSource hỗ trợ cài Node.js 22.x LTS (và các bản mới hơn) cho Ubuntu 24.04. Luôn dùng bản LTS để được vá bảo mật đầy đủ.

Làm sao để ứng dụng Node.js tự chạy lại sau khi VPS reboot?

Dùng pm2: chạy pm2 start app.js, rồi pm2 savepm2 startup systemd. pm2 sẽ tạo systemd service để khởi động lại các process của bạn cùng hệ thống.

Có cần cài Nginx khi chạy Node.js trên VPS không?

Không bắt buộc, nhưng khuyên dùng cho production. Nginx xử lý SSL (Let's Encrypt), gzip, giới hạn tốc độ và đứng trước Node.js. Bạn có thể tham khảo bài cách gán chứng chỉ SSL vào Nginx trên VPS để cấu hình HTTPS cho app Node.js.

Bài viết liên quan

Chạy Node.js trên VPS không khó, cái khó là chọn đúng cách cài để không phải đau đầu nâng cấp sau này. Với production, hãy dùng NodeSource hoặc binary kèm pm2; với máy dev hoặc staging, nvm là lựa chọn linh hoạt hơn. Sau khi xong phần runtime, bước tiếp theo là cấu hình Nginx reverse proxy và HTTPS để đưa ứng dụng ra internet một cách an toàn. Nếu bạn đang cần một môi trường chạy Node.js ổn định với VPS Linux NVMe tại Việt Nam, hoặc cần VPS Windows cho nhánh phát triển .NET, hãy kiểm tra cấu hình và bảng giá hiện tại trước khi quyết định.

Lưu ý: Bài viết mang tính tham khảo, tổng hợp kiến thức chung. Mỗi hệ thống, hạ tầng và nhu cầu có đặc thù riêng, nên kiểm thử trong môi trường an toàn và tham vấn kỹ sư trước khi triển khai thực tế.