Bạn có bao giờ tự hỏi tại sao Node.js ngày càng trở nên quan trọng trong thế giới phát triển ứng dụng web hiện đại không? Với khả năng xử lý hàng nghìn kết nối đồng thời một cách hiệu quả, Node.js đã trở thành nền tảng không thể thiếu cho các ứng dụng thời gian thực, API, và microservices. Tuy nhiên, việc cài đặt một môi trường phát triển mạnh mẽ như vậy trên một hệ điều hành máy chủ ổn định như CentOS 7 đôi khi lại là một thách thức. Nhiều người dùng thường gặp khó khăn do các bước hướng dẫn chưa rõ ràng hoặc các kho lưu trữ mặc định đã lỗi thời.
Chính vì vậy, bài viết này được tạo ra để trở thành kim chỉ nam của bạn. AZWEB sẽ hướng dẫn bạn chi tiết từng bước, từ chuẩn bị môi trường, thêm kho lưu trữ NodeSource đáng tin cậy, đến cài đặt và xử lý các sự cố thường gặp. Chúng tôi sẽ đảm bảo rằng sau khi đọc xong, bạn có thể tự tin cài đặt Node.js trên CentOS 7 một cách đơn giản, nhanh chóng và chính xác nhất. Hãy cùng bắt đầu hành trình xây dựng môi trường phát triển hoàn hảo cho dự án của bạn!
Chuẩn bị môi trường trước khi cài đặt Node.js trên CentOS 7
Trước khi bắt đầu cài đặt Node.js, việc chuẩn bị một môi trường sạch sẽ và đầy đủ là bước quan trọng nhất. Điều này đảm bảo quá trình cài đặt diễn ra suôn sẻ và tránh được những lỗi không đáng có. Giống như việc xây một ngôi nhà, bạn cần một nền móng vững chắc trước khi đặt những viên gạch đầu tiên.
Cập nhật hệ thống và các gói phụ thuộc cần thiết
Đầu tiên, hãy đảm bảo hệ điều hành CentOS 7 của bạn được cập nhật lên phiên bản mới nhất. Việc này không chỉ giúp vá các lỗ hổng bảo mật mà còn đảm bảo tính tương thích của các gói phần mềm. Bạn có thể thực hiện việc này bằng một lệnh đơn giản trong terminal:
sudo yum update -y
Lệnh này sẽ tự động tải về và cài đặt tất cả các bản cập nhật có sẵn cho hệ thống của bạn. Quá trình này có thể mất vài phút tùy thuộc vào tốc độ mạng và số lượng gói cần cập nhật.

Một terminal hiển thị quá trình cập nhật các gói hệ thống trên CentOS 7.
Tiếp theo, chúng ta cần cài đặt một số công cụ phát triển cần thiết mà Node.js có thể yêu cầu, đặc biệt là khi bạn làm việc với các gói npm cần biên dịch từ mã nguồn gốc. Các gói này bao gồm gcc-c++ và make.
sudo yum install -y gcc-c++ make
Việc cài đặt các công cụ này ngay từ đầu sẽ giúp bạn tiết kiệm thời gian và tránh các lỗi biên dịch phiền phức sau này.
Kiểm tra quyền truy cập và môi trường người dùng
Để thực hiện các thay đổi ở cấp hệ thống như cài đặt phần mềm mới, bạn cần có quyền quản trị viên. Hãy chắc chắn rằng bạn đang đăng nhập với người dùng có quyền sudo hoặc tài khoản root. Hầu hết các lệnh trong bài hướng dẫn này sẽ bắt đầu bằng sudo để yêu cầu quyền truy cao. Đây là một biện pháp an ninh quan trọng để ngăn chặn các thay đổi hệ thống không mong muốn.
Nếu bạn không chắc chắn về quyền của mình, bạn có thể thử chạy lệnh sudo -v. Nếu lệnh thực thi mà không báo lỗi, bạn đã có quyền cần thiết. Ngược lại, bạn sẽ cần liên hệ với quản trị viên hệ thống của mình. Về cơ bản, môi trường người dùng trên CentOS 7 đã đủ để cài đặt Node.js mà không cần thiết lập các biến môi trường phức tạp, vì các tập lệnh cài đặt hiện đại thường sẽ tự động xử lý việc này cho bạn.
Cách thêm kho lưu trữ Node.js trên CentOS 7
Kho lưu trữ (repository) mặc định của CentOS 7 thường chứa các phiên bản Node.js khá cũ. Để cài đặt phiên bản mới và ổn định hơn, chúng ta cần thêm một kho lưu trữ từ bên thứ ba. NodeSource là một lựa chọn đáng tin cậy và được cộng đồng chính thức khuyên dùng để quản lý các bản phân phối Node.js trên Linux.
Sử dụng NodeSource để thêm kho lưu trữ Node.js
NodeSource cung cấp một tập lệnh (script) tiện lợi giúp tự động hóa toàn bộ quá trình thêm kho lưu trữ vào hệ thống của bạn. Bạn chỉ cần chọn phiên bản Node.js mình muốn cài đặt. Lời khuyên là bạn nên chọn phiên bản LTS (Long-Term Support). Các phiên bản LTS được hỗ trợ lâu dài, nhận được các bản cập nhật bảo mật và sửa lỗi thường xuyên, đảm bảo sự ổn định cho các ứng dụng sản phẩm.
Giả sử bạn muốn cài đặt phiên bản LTS mới nhất, ví dụ Node.js 20.x, bạn sẽ sử dụng lệnh sau:
curl -sL https://rpm.nodesource.com/setup_20.x | sudo -E bash -
Hãy cùng phân tích lệnh này:
curl -sL: Tải về nội dung của URL được cung cấp.-slà chế độ im lặng (silent) và-Lcho phép đi theo các chuyển hướng.|: Toán tử “pipe” này chuyển trực tiếp đầu ra (nội dung script) của lệnhcurlsang cho lệnh tiếp theo.sudo -E bash -: Thực thi script vừa tải về với quyềnsudo.-Eđảm bảo các biến môi trường hiện tại được giữ lại.

Giao diện terminal sau khi chạy thành công script của NodeSource để thêm kho lưu trữ.
Nếu bạn cần một phiên bản khác, chỉ cần thay đổi setup_20.x thành phiên bản tương ứng, ví dụ setup_18.x.
Cập nhật và kiểm tra kho lưu trữ đã thêm
Sau khi chạy script của NodeSource, nó sẽ tự động làm mới bộ đệm của yum. Tuy nhiên, để chắc chắn, bạn có thể kiểm tra xem kho lưu trữ đã được thêm vào hệ thống thành công hay chưa. Bạn có thể liệt kê tất cả các kho lưu trữ đã được kích hoạt bằng lệnh:
yum repolist
Trong danh sách hiện ra, bạn sẽ thấy một mục có tên là nodesource. Điều này xác nhận rằng hệ thống của bạn bây giờ đã sẵn sàng để tải và cài đặt Node.js từ kho lưu trữ chính thức này. Giờ đây, bạn có thể hoàn toàn yên tâm rằng mình sẽ cài đặt được phiên bản Node.js mới và an toàn nhất.
Hướng dẫn cài đặt Node.js và npm trên CentOS 7
Khi kho lưu trữ NodeSource đã được thêm thành công, việc cài đặt Node.js và npm trở nên vô cùng đơn giản. Bạn chỉ cần sử dụng trình quản lý gói yum của CentOS, giống như cách bạn cài đặt bất kỳ phần mềm nào khác từ các kho lưu trữ chính thức.
Lệnh cài đặt Node.js và npm
Bây giờ, hãy mở terminal và chạy lệnh sau để bắt đầu quá trình cài đặt:
sudo yum install -y nodejs
Lệnh này sẽ yêu cầu yum tìm gói nodejs trong các kho lưu trữ đã được cấu hình. Vì chúng ta đã thêm kho của NodeSource, yum sẽ tìm thấy phiên bản Node.js mà bạn đã chọn (ví dụ: 20.x) và tiến hành cài đặt nó. Tùy chọn -y sẽ tự động trả lời “yes” cho tất cả các câu hỏi xác nhận, giúp quá trình cài đặt diễn ra liền mạch.

Quá trình cài đặt Node.js và npm bằng lệnh yum trên terminal.
Một điều tuyệt vời là khi bạn cài đặt Node.js theo cách này, npm (Node Package Manager) cũng sẽ được cài đặt tự động. npm là công cụ dòng lệnh không thể thiếu, được ví như trái tim của hệ sinh thái Node.js. Nó giúp bạn quản lý các thư viện (packages), cài đặt các phụ thuộc cho dự án và thực thi các tập lệnh một cách dễ dàng.
Thiết lập cấu hình sau cài đặt
Trong hầu hết các trường hợp, bạn không cần phải thực hiện thêm bất kỳ cấu hình phức tạp nào sau khi cài đặt. Node.js và npm đã sẵn sàng để sử dụng. Tuy nhiên, một thực hành tốt là đảm bảo bạn đang sử dụng phiên bản npm mới nhất. Đôi khi, phiên bản npm đi kèm với Node.js không phải là phiên bản mới nhất.
Bạn có thể cập nhật npm lên phiên bản mới nhất bằng lệnh sau:
sudo npm install npm@latest -g
Lệnh này sử dụng chính npm để cập nhật chính nó. Tùy chọn -g (global) đảm bảo rằng phiên bản npm mới sẽ được cài đặt trên toàn hệ thống và có thể được sử dụng ở bất kỳ đâu. Việc giữ cho npm được cập nhật sẽ giúp bạn tận dụng các tính năng mới, cải thiện hiệu suất và tăng cường bảo mật.
Kiểm tra phiên bản Node.js sau khi cài đặt
Sau khi hoàn tất quá trình cài đặt, bước tiếp theo là xác minh rằng mọi thứ đã hoạt động chính xác. Đây là bước kiểm tra quan trọng để đảm bảo môi trường phát triển của bạn đã sẵn sàng và không có lỗi nào xảy ra trong quá trình cài đặt. Việc này giống như khởi động một chiếc xe mới để chắc chắn rằng động cơ hoạt động trơn tru.
Kiểm tra phiên bản Node.js
Cách đơn giản nhất để kiểm tra xem Node.js và npm đã được cài đặt thành công hay chưa là yêu cầu chúng hiển thị phiên bản hiện tại. Hãy mở terminal và chạy lần lượt hai lệnh sau:
node -v
Lệnh này sẽ hiển thị phiên bản của Node.js đã được cài đặt, ví dụ: v20.10.0.
npm -v
Tương tự, lệnh này sẽ hiển thị phiên bản của npm, ví dụ: 10.2.3.

Kết quả hiển thị phiên bản của Node.js và npm sau khi chạy lệnh kiểm tra.
Nếu cả hai lệnh đều trả về số phiên bản thay vì lỗi “command not found”, xin chúc mừng! Bạn đã cài đặt thành công Node.js và npm trên máy chủ CentOS 7 của mình. Đây là dấu hiệu cho thấy các tệp thực thi đã được đặt đúng vị trí và có thể truy cập được từ bất kỳ đâu trên hệ thống.
Kiểm tra hoạt động bằng cách chạy ứng dụng đơn giản
Để chắc chắn hơn nữa, hãy thử tạo một ứng dụng Node.js đơn giản. Tạo một tệp mới có tên là test_app.js bằng trình soạn thảo văn bản bạn yêu thích (ví dụ: nano hoặc vi):
nano test_app.js
Bên trong tệp, hãy thêm đoạn mã JavaScript sau:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Chao mung den voi AZWEB! Node.js dang chay tren CentOS 7.\n');
});
server.listen(port, hostname, () => {
console.log(`Server dang chay tai http://${hostname}:${port}/`);
});
Lưu và đóng tệp. Bây giờ, hãy chạy ứng dụng bằng Node.js:
node test_app.js
Nếu bạn thấy thông báo Server dang chay tai http://127.0.0.1:3000/ trên terminal, điều đó có nghĩa là môi trường của bạn đang hoạt động hoàn hảo. Bạn có thể mở một terminal khác và dùng lệnh curl http://127.0.0.1:3000 để thấy thông điệp chào mừng.
Cách sử dụng npm để quản lý các gói thư viện
npm không chỉ là một công cụ đi kèm với Node.js, nó còn là cổng vào một hệ sinh thái khổng lồ với hàng triệu gói thư viện mã nguồn mở. Việc hiểu cách sử dụng npm hiệu quả là chìa khóa để tăng tốc độ phát triển và xây dựng các ứng dụng phức tạp. Hãy cùng khám phá các thao tác cơ bản và quan trọng nhất với npm.
Tìm kiếm, cài đặt và gỡ bỏ gói npm
Giả sử bạn cần xây dựng một web server và muốn sử dụng Express.js, một framework phổ biến. Đầu tiên, bạn có thể tìm kiếm nó trên trang web chính thức của npm hoặc trực tiếp từ dòng lệnh:
npm search express
Khi đã tìm thấy gói phù hợp, bạn cần khởi tạo một dự án Node.js. Di chuyển đến thư mục dự án của bạn và chạy:
npm init -y
Lệnh này sẽ tạo ra một tệp package.json, dùng để quản lý thông tin và các phụ thuộc của dự án.
Bây giờ, để cài đặt Express, bạn chỉ cần chạy:
npm install express
Lệnh này sẽ tải Express và các phụ thuộc của nó vào một thư mục có tên node_modules, đồng thời tự động thêm express vào tệp package.json.

Minh họa một tệp package.json đơn giản với các gói phụ thuộc được liệt kê.
Nếu sau này bạn không cần một gói nữa, việc gỡ bỏ nó cũng rất đơn giản:
npm uninstall express
Lệnh này sẽ xóa gói khỏi node_modules và cập nhật lại tệp package.json.
Quản lý phiên bản và cập nhật gói
Tệp package.json là trung tâm quản lý của dự án. Nó ghi lại chính xác phiên bản của các gói bạn đang sử dụng, giúp đảm bảo tính nhất quán khi làm việc nhóm hoặc triển khai ứng dụng trên các môi trường khác nhau. Khi bạn muốn cài đặt lại tất cả các phụ thuộc đã được định nghĩa trong package.json, chỉ cần chạy npm install.
Theo thời gian, các gói thư viện sẽ có phiên bản mới với các bản vá lỗi hoặc tính năng mới. Để kiểm tra các gói đã lỗi thời trong dự án của bạn, hãy chạy:
npm outdated
Để cập nhật tất cả các gói lên phiên bản mới nhất được cho phép bởi các quy tắc phiên bản trong package.json, bạn có thể sử dụng lệnh:
npm update
Việc quản lý các gói thư viện một cách chủ động sẽ giúp dự án của bạn luôn được bảo mật, ổn định và tận dụng được những công nghệ mới nhất.
Xử lý sự cố thường gặp khi cài đặt Node.js trên CentOS 7
Mặc dù quá trình cài đặt Node.js với NodeSource khá đơn giản, đôi khi bạn vẫn có thể gặp phải một số sự cố không mong muốn. Đừng lo lắng, hầu hết các vấn đề này đều có nguyên nhân phổ biến và cách khắc phục tương đối dễ dàng. Dưới đây là hai sự cố thường gặp nhất và cách giải quyết chúng.
Lỗi không tìm thấy node hoặc npm sau cài đặt
Bạn đã hoàn thành tất cả các bước cài đặt và nhận được thông báo thành công, nhưng khi gõ node -v, bạn lại nhận được lỗi bash: node: command not found. Đây là một vấn đề khá phổ biến.
Nguyên nhân thường gặp: Nguyên nhân chính thường là do thư mục chứa các tệp thực thi của Node.js (thường là /usr/bin/) không nằm trong biến môi trường PATH của người dùng hiện tại. Biến PATH là danh sách các thư mục mà hệ thống sẽ tìm kiếm khi bạn chạy một lệnh. Mặc dù kịch bản cài đặt của NodeSource thường xử lý việc này, nhưng đôi khi có thể xảy ra xung đột hoặc lỗi cấu hình.
Cách khắc phục:
- Kiểm tra PATH: Đầu tiên, hãy kiểm tra nội dung của biến
PATHbằng lệnhecho $PATH. - Tìm vị trí của Node.js: Sử dụng lệnh
whereis nodeđể xem Node.js đã được cài đặt ở đâu. - Cập nhật PATH: Nếu thư mục chứa
nodekhông có trongPATH, bạn cần thêm nó vào. Cách tốt nhất là chỉnh sửa tệp cấu hình shell của bạn (ví dụ:~/.bashrchoặc~/.bash_profile), thêm dòngexport PATH=$PATH:/usr/bin(thay/usr/binbằng đường dẫn đúng nếu cần) vào cuối tệp. Sau đó, chạysource ~/.bashrcđể áp dụng thay đổi.

Hình ảnh terminal hiển thị lỗi “command not found” và cách khắc phục.
Lỗi quyền truy cập và cài đặt gói npm
Một lỗi phổ biến khác là EACCES: permission denied khi bạn cố gắng cài đặt một gói npm trên toàn cầu (với cờ -g), ví dụ: npm install -g pm2.
Nguyên nhân: Lỗi này xảy ra vì theo mặc định, npm cố gắng cài đặt các gói toàn cầu vào một thư mục hệ thống (ví dụ: /usr/lib/node_modules) mà người dùng thông thường không có quyền ghi.
Cách khắc phục:
- Sử dụng
sudo(Không khuyến khích): Cách nhanh nhất là chạy lệnh vớisudo:sudo npm install -g pm2. Tuy nhiên, đây không phải là cách làm tốt nhất về mặt bảo mật, vì các tập lệnh cài đặt trong gói npm sẽ được chạy với quyền root, tiềm ẩn rủi ro. - Thay đổi thư mục mặc định của npm (Khuyến khích): Một giải pháp an toàn hơn là cấu hình npm để sử dụng một thư mục khác trong thư mục chính của người dùng cho các gói toàn cầu.
- Tạo một thư mục mới:
mkdir ~/.npm-global - Cấu hình npm để sử dụng thư mục này:
npm config set prefix '~/.npm-global' - Thêm thư mục mới này vào biến
PATHcủa bạn bằng cách chỉnh sửa tệp~/.bashrcvà thêm dòng:export PATH=~/.npm-global/bin:$PATH - Tải lại cấu hình:
source ~/.bashrc
- Tạo một thư mục mới:
Sau khi thực hiện các bước này, bạn có thể cài đặt các gói toàn cầu mà không cần dùng đến sudo.

Minh họa lỗi “permission denied” khi cài đặt gói npm toàn cầu.
Best Practices
Để đảm bảo môi trường Node.js trên CentOS 7 của bạn luôn ổn định, an toàn và hiệu quả, việc tuân thủ một số nguyên tắc và thực hành tốt nhất là vô cùng quan trọng. Dưới đây là những lời khuyên từ AZWEB giúp bạn tối ưu hóa quy trình làm việc của mình.
- Luôn cập nhật hệ thống và sao lưu trước khi cài đặt: Trước khi thực hiện bất kỳ thay đổi lớn nào như cài đặt Node.js, hãy chắc chắn rằng hệ thống của bạn đã được cập nhật đầy đủ với
sudo yum update -y. Đồng thời, nếu đây là một máy chủ quan trọng, việc tạo một bản sao lưu (snapshot) là một biện pháp phòng ngừa thông minh. - Ưu tiên sử dụng phiên bản LTS của Node.js: LTS (Long-Term Support) là phiên bản được hỗ trợ dài hạn. Các phiên bản này tập trung vào sự ổn định và bảo mật, thay vì các tính năng mới nhất. Đối với môi trường sản xuất (production), việc sử dụng phiên bản LTS sẽ giúp ứng dụng của bạn hoạt động đáng tin cậy và nhận được các bản vá bảo mật quan trọng trong nhiều năm.
- Sử dụng npm scripts để quản lý các tác vụ lập trình hiệu quả: Tận dụng mục
"scripts"trong tệppackage.jsonđể tự động hóa các tác vụ lặp đi lặp lại. Thay vì gõ các lệnh dài, bạn có thể định nghĩa các lối tắt nhưnpm startđể khởi động máy chủ,npm testđể chạy kiểm thử, hoặcnpm run buildđể biên dịch mã. Điều này giúp dự án của bạn có cấu trúc và dễ dàng hơn cho các thành viên khác trong nhóm làm việc.

Một ví dụ về mục “scripts” trong tệp package.json với các lệnh tự động hóa.
- Tránh cài đặt gói npm với quyền root trực tiếp nếu không cần thiết: Như đã đề cập ở phần xử lý sự cố, việc sử dụng
sudo npm installcó thể gây ra rủi ro bảo mật. Hãy luôn ưu tiên cấu hình npm để cài đặt các gói toàn cầu vào thư mục người dùng của bạn. Việc này tuân thủ nguyên tắc đặc quyền tối thiểu, giúp bảo vệ hệ thống của bạn khỏi các mã độc tiềm ẩn trong các gói npm.
Kết luận
Qua bài viết này, chúng ta đã cùng nhau đi qua một quy trình chi tiết và chuẩn xác để cài đặt Node.js trên CentOS 7. Từ việc chuẩn bị và cập nhật hệ thống, thêm kho lưu trữ NodeSource uy tín, cho đến việc cài đặt, xác minh và xử lý các sự cố thường gặp. Hy vọng rằng, với những hướng dẫn này, bạn có thể tự tin thiết lập một môi trường phát triển Node.js mạnh mẽ và ổn định cho riêng mình.
Việc cài đặt thành công chỉ là bước khởi đầu. Sức mạnh thực sự của Node.js nằm ở hệ sinh thái npm phong phú và khả năng xây dựng các ứng dụng hiệu suất cao. AZWEB khuyến khích bạn tiếp tục khám phá, thử nghiệm với các gói thư viện khác nhau và tùy chỉnh môi trường phát triển để phù hợp nhất với nhu cầu dự án của bạn. Đừng ngần ngại đối mặt với thách thức, bởi đó là cách tốt nhất để học hỏi và phát triển kỹ năng.

Hình ảnh tổng kết quy trình cài đặt Node.js trên CentOS 7.
Nếu bạn thấy bài viết này hữu ích, hãy tiếp tục theo dõi blog của AZWEB để cập nhật thêm nhiều kiến thức chuyên sâu về phát triển web, quản lý máy chủ và các giải pháp công nghệ tiên tiến khác. Chúc bạn thành công trên con đường chinh phục thế giới lập trình