Bước 1: Cài đặt môi trường VPS

1. Cập nhật phần mềm

Thông thường các VPS đã cài đặt sẵn các phần mềm quan trọng rồi nên việc đầu tiên chúng ta là cập nhật chúng để đảm bảo những phần mềm đó có đầy đủ những chức năng và bảo mật tốt nhất.

👉 Cập nhật tất cả phầm mềm:

$ yum update

2. Cài đặt timezone:

Nếu các bạn sử dụng VPS ở nước ngoài thì chúng ta cần cập nhật lại time zone phù hợp mới dự án để đảm bảo không có vấn đề phát sinh nha, đặc biệt là những công việc liên quan đến cron job.

Ví dụ bên dưới mình sẽ cập nhật thời gian về múi giờ của Việt Nam.

👉 Kiểm tra giờ hiện tại:

$ date

👉 Cập nhật timezone thành Asian/Ho_Chi_Minh, các bạn có thể xem thêm timezone ở Database Timezones.

$ rm -f /etc/localtime
$ ln -s /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime

Đồng bộ Network Time Protocol NTP về server Việt Nam:

👉 Cài đặt NTP:

$ yum install -y ntpdate

👉 Đồng bộ NTP server Việt Nam:

$ ntpdate vn.pool.ntp.org

Hoặc server Asian:

$ ntpdate asia.pool.ntp.org

Hoặc các server có trong NTP Pool Servers

Ngoài ra các bạn có thể thay đổi hostname và ssh port của vps nữa đó, nếu các bạn quan tâm có thể làm theo hướng dẫn ở link bên dưới:

Bước 2: Cài đặt môi trường ứng dụng

Tùy thuộc vào công nghệ các bạn sử dụng, hãy cài đặt những ứng dụng phù hợp để khởi chạy dự án trên VPS nhé. Trong ví dụ này mình sẽ demo dự án Node.js kết nối MongoDB để lưu dữ liệu. Ngoài ra mình cũng sử dụng PM2 để quản lý ứng dụng nodejs.

3. Cài đặt git

Phương pháp dễ nhất là chúng ta sẽ cài đặt git thông qua yum của CentOS.

👉 Cài đặt git:

sudo yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
$ sudo yum install git

👉 Kiểm tra phiên bản của git:

$ git --version

4. Cài đặt Node.js & npm

Chúng ta sẽ cài đặt thông qua NVM

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.bashrc

Hiển thị danh sách phiên bản nodejs

nvm ls-remote

Cài đặt Node 16

nvm install 16

Vem các phiên bản đã cài đặt trên hệ thống

nvm ls

Sử dụng phiên bản Node 16

nvm use 16

Xóa phiên bản Node 16

nvm uninstall 16

👉 Kiểm tra phiên bản của node:

$ node --version

👉 Kiểm tra phiên bản của npm:

$ npm --version

5. Cài đặt yarn và pm2

👉  Cài đặt bằng npm:

$ npm install yarn pm2 -g

👉 Cho phép máy chủ chạy pm2 mỗi khi restart:

$ sudo pm2 startup systemd

7. Cài đặt mongodb

Việc đầu tiên chúng ta cần làm là tạo file /etc/yum.repos.d/mongodb-org-.repo, version mình đang sử dụng là 4.4.

👉 Tạo mongodb repo:

$ sudo vi /etc/yum.repos.d/mongodb-org.repo

Sau khi tạo file mongodb-org.repo bằng lệnh vi, các bạn sẽ mở file theo mặc định. Lúc này hãy bấm phím i để bắt đầu chỉnh sửa 😋

👉 Cấu hình cho mongodb ở file mongodb-org.repo bằng cách copy dòng lệnh bên dưới vào

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

Copy hoàn tất các bạn lưu lại bằng cách nhấn Esc và nhập :x, cuối cùng ấn Enter để xác nhận lệnh.

Như đã nói ở trên, version mình sử dụng hiện tại là 4.4, các bạn có thể thay version khác bằng cách sửa trực tiếp vào file mongodb-org.repo.

👉 Cài đặt mongodb từ yum:

$ sudo yum install -y mongodb-org

hoặc các bạn có thể cài đặt 1 phiên bản cụ thể bằng lệnh (mình cài bản 4.2.3 nè):

$ sudo yum install -y mongodb-org-4.2.3 mongodb-org-server-4.2.3 mongodb-org-shell-4.2.3 mongodb-org-mongos-4.2.3 mongodb-org-tools-4.2.3

👉 Chạy mongodb service bằng systemctl:

$ sudo systemctl start mongod

Ngoài ra các bạn có thể khởi chạy lại mongo service hoặc tắt nó bằng lệnh reload và stop nha 🤩

Để mongo service tự động chạy mỗi khi restart server, chúng ta chạy lệnh:

$ sudo systemctl enable mongod

Lưu ý: Trong một số trường hợp mongodb sẽ báo lỗi không tìm thấy thư mục mongo và  mongodb, các bạn xem cách sửa lỗi ở đây hoặc đặt câu hỏi ở phần comment nha.

8. Clone repository của dự án về VPS

Đến đây thì chúng ta đã gần như cài đặt đầy đủ môi trường cho dự án rồi đó 😍😍 Nếu các bạn còn thiếu ứng dụng nào thì cài bổ sung cho đủ nha, ví dụ như là Redis, Nuxt, Next,…

Việc tiếp theo cần làm là clone repository của dự án về VPS, các bạn sử dụng lệnh git như bình thường ha. Thông thường thì mình sẽ clone vô thư mục /home để dễ quản lý.

👉 Di chuyển vào thư mục home:

$ cd /home

Vậy là các bạn đã vào /home rồ đó, sử dụng git để clone dự án về nào 😎😎

Di chuyển vào thư mục dự án từ thư mục home:

$ cd tên-thư-mục

Rồi, giờ thì chạy 1 đống các lệnh quen thuộc để install node_modules, setup cho dự án nodejs nào :))

Bước 3: Cài đặt Web Server Nginx

Nginx là một phần mềm máy chủ web hiệu suất cao. Đây là một chương trình linh hoạt và nhẹ hơn nhiều so với HTTP Apache. Chúng ta hãy bắt tay cài đặt nào!

👉 Cài đặt EPEL:

$ sudo yum install epel-release

👉 Cài đặt Nginx:

$ sudo yum install nginx

👉 Chạy service Nginx:

$ sudo systemctl start nginx

Nếu bạn đang bật tường lửa, hãy chạy các lệnh bên dưới để cho phép truy cập bằng HTTP và HTTPS:

$ sudo firewall-cmd --permanent --zone=public --add-service=http 
$ sudo firewall-cmd --permanent --zone=public --add-service=https
$ sudo firewall-cmd --reload

👉 Tự động khởi chạy service nginx mỗi khi restart server:

$ sudo systemctl enable nginx

Bây giờ các bạn gõ IP của vps vào thanh address của trình duyệt để thấy điều bất ngờ nào 😎😎

Bước 4: Chạy ứng dụng nodejs

Di chuyển vào thư mục dự án:

$ pm2 start index.js

Test, nếu không truy cập được do bị chặn port:

Kiểm tra zone nào của tường lửa đang được active:

$ firewall-cmd --get-active-zones

Mở cổng (VD: 80) trên zone đang active (Public Zone)

$ firewall-cmd --zone=public --add-port=80/tcp --permanent

Sau đó để luật mới có hiệu lực cần reload lại tường lửa bằng command sau:

$ firewall-cmd --reload

Để kiểm tra việc mở port đã thành công hay chưa, truy cập trực tiếp bằng domain hoặc địa chỉ IP của Server để xem máy chủ web đã hoạt động chưa.

Leave a Reply

Your email address will not be published. Required fields are marked *