Cách cài đặt Wiki.js trên CentOS 7

theanh

Administrator
Nhân viên
Wiki.js là ứng dụng wiki mã nguồn mở hiện đại và mạnh mẽ dựa trên Node.js, Git và Markdown. Wiki.js chạy trên công cụ Node.js cực nhanh và được tối ưu hóa để tiết kiệm tài nguyên CPU. Một số tính năng đáng chú ý của Wiki.js là:
  • Chỉnh sửa Markdown, được hỗ trợ bởi Git
  • Nhẹ nhưng cực kỳ mạnh mẽ
  • Được thiết kế đẹp mắt cho web hiện đại
  • Kiểm soát truy cập tích hợp
  • Quản lý tài sản trực quan
  • Công cụ tìm kiếm tích hợp
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn quy trình cài đặt Wiki.js phiên bản 1 trên hệ điều hành CentOS 7bằng cách sử dụngNGINXlàm máy chủ proxy ngược, MongoDB làm máy chủ cơ sở dữ liệu, PM2 làm trình quản lý quy trình và tùy chọn bạn có thể bảo mật lớp truyền tải bằng cách sử dụngacme.shclient và cơ quan cấp chứng chỉ Let's Encrypt để thêm hỗ trợ SSL.

Yêu cầu​

Yêu cầu để chạy Wiki.js là sau:
  • Yêu cầu Node.js 6.11.1 đến 10.x.
  • MongoDB phiên bản 3.2 trở lên.
  • Git phiên bản 2.7.4 trở lên.
  • Phần mềm máy chủ web như NGINX, Apache, Caddy, H2O...
  • Kho lưu trữ Git trống (tùy chọn).
  • Tối thiểu512MB RAM. Khuyến nghị 1GB RAM.
  • Khoảng300MBdung lượng đĩa.
  • Tên miền có thiết lập bản ghiA/AAAADNS.

Điều kiện tiên quyết​

  • Hệ điều hành CentOS7.
  • Người dùng không phải root với sudoquyền hạn.

Các bước ban đầu​

Kiểm tra phiên bản CentOS của bạn:
Mã:
cat /etc/centos-release[B]
Thiết lập múi giờ:
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Cập nhật các gói hệ điều hành của bạn (phần mềm). Đây là bước đầu tiên quan trọng vì nó đảm bảo bạn có các bản cập nhật và bản sửa lỗi bảo mật mới nhất cho các gói phần mềm mặc định của hệ điều hành:
Mã:
sudo yum update -y
Cài đặt một số gói thiết yếu cần thiết cho việc quản trị cơ bản hệ điều hành CentOS:
Mã:
sudo yum install -y curl wget vimunzip socat epel-release
Wiki.js yêu cầu bạn phải cài đặt Git phiên bản2.7.4 trở lên. Phiên bản Git mặc định trên CentOS quá cũ, vì vậy bạn sẽ cần phải xây dựng nó từ mã nguồn. Sau đây là các lệnh để biên dịch nhanh:
Mã:
# Xóa gói git hiện có nếu đã cài đặt:
sudo yum remove -y git
sudo yum groupinstall -y "Công cụ phát triển"
sudo yum install -y gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel curl-devel
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz && tar zxvf git-2.21.0.tar.gz
rm git-2.21.0.tar.gz
cd git-2.21.0
make configure
./configure make prefix=/usr/local all
sudo make prefix=/usr/local install
cd ~
which git
git --version

Bước 1- Cài đặt Node.js và npm​

Wiki.jsđược xây dựng trênNode.js.Chúng tôi sẽ cài đặtphiên bảnmới nhất được khuyến nghị cho Wiki.js là phiên bản 10[/b]tại thời điểm viết bài này. Trên Linux, bạn có một số tùy chọn cài đặt Node.js: Linux Binaries (x86/x64), Source Code hoặc thông qua Package Managers. Chúng tôi sẽ sử dụng tùy chọn Package Management giúp việc cài đặt và cập nhật Node.js trở nên dễ dàng.

Tải xuống và cài đặt phiên bản mới nhất được đề xuấtcủaNode.js từ NodeSourcerepository:
Mã:
[ICODE]curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install -y nodejs[/ICODE]
LƯU Ý:npm được phân phối cùng với Node.js - nghĩa là khi bạn tải Node.js xuống, npm sẽ tự động được cài đặt trên hệ thống của bạn.

Kiểm tra phiên bản Node.js và npm:
Mã:
[ICODE]node -v && npm -v
# v10.15.1
# 6.4.1
[/ICODE]
Npm là một dự án riêng biệt với Node.js và có xu hướng cập nhật thường xuyên hơn. Do đó, ngay cả khi bạn vừa tải Node.js (và do đó là npm), bạn có thể sẽ cần cập nhật npm của mình. May mắn thay, npm biết cách tự cập nhật! Để cập nhật npm của bạn, hãy nhập lệnh này vào terminal:

Mã:
sudo npm install -g npm@latest
Lệnh này sẽ cập nhật npm lên phiên bản ổn định mới nhất.

Kiểm tra lại phiên bản npm bằng:
Mã:
npm -v
# 6.8.0
Và nó sẽ trả về số phiên bản mới nhất.

Bước 2 - Cài đặt cơ sở dữ liệu MongoDB​

Wiki.jscần một cơ sở dữ liệu để lưu trữ dữ liệu của nó và phiên bản ổn định hiện tại của Wiki.js chỉ hỗ trợ công cụ cơ sở dữ liệu MongoDB.Theo đó, chúng ta sẽ cần cài đặt cơ sở dữ liệu MongoDB.

Tạo một/etc/yum.repos.d/mongodb-org-4.0.repotệp để bạn có thể cài đặt MongoDB trực tiếp bằng cách sử dụng yum.

Chạy:
Mã:
sudo vim /etc/yum.repos.d/mongodb-org-4.0.repo
Và điền vào tệp với cấu hình sau:
Mã:
[mongodb-org-4.0]name=Kho lưu trữ MongoDBbaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
Để cài đặt phiên bản ổn định mới nhất của MongoDB, hãy đưa ra lệnh sau:
Mã:
sudo yum install -y mongodb-org
Kiểm tra phiên bản MongoDB:
Mã:
mongo --version | head -n 1 && mongod --version | head -n 1
# Phiên bản shell MongoDB v4.0.6
# Phiên bản db v4.0.6
Có thể khởi động và cho phép(thiết lập để khởi động khi khởi động lại)Dịch vụ MongoDB nếu chưa được khởi động và bật:
Mã:
sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Bước 3 - Cài đặt ứng dụng khách acme.sh và lấy chứng chỉ Let's Encrypt (tùy chọn)​

Không nhất thiết phải bảo mật trang web của bạn bằng HTTPS, nhưng đây là biện pháp tốt để bảo mật lưu lượng truy cập trang web của bạn. Để lấy chứng chỉ SSL từ Let's Encrypt, chúng ta sẽ sử dụng acme.shclient. Acme.shlà phần mềm shell UNIX thuần túy để lấy chứng chỉ SSL từ Let's Encrypt mà không phụ thuộc vào bất kỳ thứ gì.

Tải xuống và cài đặt acme.sh:
Mã:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail[emailprotected]
source ~/.bashrc
cd ~
Kiểm tra phiên bản acme.sh:
Mã:
acme.sh --version
# v2.8.1
Lấy chứng chỉRSAECC/ECDSAcho tên miền/tên máy chủ của bạn:
Mã:
# RSA 2048
acme.sh --issue--standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Nếu bạn muốn có chứng chỉ giả để thử nghiệm, bạn có thể thêm--stagingflag vào các lệnh trên.

Để liệt kê các chứng chỉ đã cấp, bạn có thể chạy:
Mã:
acme.sh --list
Tạo thư mục để lưu trữ chứng chỉ của bạn. Chúng tôi sẽ sử dụng /etc/letsencryptnhưng có thể là bất kỳ thư mục nào bạn thích để lưu trữ chứng chỉ SSL.
Mã:
mkdir -p /etc/letsencrypt/example.com
mkdir -p /etc/letsencrypt/example.com_ecc
Cài đặt/sao chép chứng chỉ vào/etc/letsencryptthư mục.
Mã:
# RSA
acme.sh --install-cert -d example.com \ 
 --cert-file /etc/letsencrypt/example.com/cert.pem \
 --key-file /etc/letsencrypt/example.com/private.key \
 --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
 --reloadcmd "sudo systemctl reload nginx.service"

# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
 --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
 --key-file /etc/letsencrypt/example.com_ecc/private.key \
 --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
 --reloadcmd "sudo systemctl reload nginx.service"
Sau khi chạy các lệnh trên, chứng chỉkhóacủa bạn sẽ nằm trong:
  • Đối với RSA: /etc/letsencrypt/example.comthư mục.
  • Đối với ECC/ECDSA: /etc/letsencrypt/example.com_eccthư mục.
Tất cả các chứng chỉ sẽ được tự động gia hạn sau mỗi 60 ngày.

Sau khi lấy được chứng chỉ, hãy thoát khỏi người dùng root và trở lại người dùng sudo bình thường:
Mã:
exit

Bước 4 - Cài đặt và cấu hình NGINX​

Wiki.js (hoặc bất kỳ ứng dụng HTTP Node.js nào) có thể chạy mà không cần bất kỳ máy chủ web thực tế nào (như NGINX hoặc Apache). Tuy nhiên, chúng tôi khuyên bạn nên đặt một máy chủ web chuẩn trước Wiki.js. Điều này đảm bảo bạn có thể sử dụng các tính năng như SSL, nhiều trang web, bộ nhớ đệm, v.v. Chúng tôi sẽ sử dụng NGINX trong hướng dẫn này, nhưng bất kỳ máy chủ nào khác cũng được, bạn chỉ cần cấu hình đúng cách.

Tải xuống và cài đặt NGINX:
Mã:
sudo yum install -y nginx
Kiểm tra phiên bản NGINX:
Mã:
nginx -v
# phiên bản nginx: nginx/1.12.2
Bật và khởi động dịch vụ NGINX:
Mã:
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Chạysudo vim /etc/nginx/conf.d/wiki.js.confvà cấu hình NGINX làm proxy ngược HTTPS.
Mã:
server { 
 listen [::]:443 ssl http2;
 listen 443 ssl http2; listen [::]:80; listen 80; server_name example.com; charset utf-8; client_max_body_size 50M;

 ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/example.com/private.key;
 ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_next_upstream error timeout http_502 http_503 http_504; }}
Điều duy nhất bạn cần thay đổi trong cấu hình trên là server_namedirective và có khả năng là proxy_passdirective nếu bạn quyết định cấu hình một số cổng khác ngoài 3000. Wiki.js sử dụng cổng 3000theo mặc định.

Kiểm tra cấu hình NGINX:
Mã:
sudo nginx -t
Cuối cùng, để các thay đổi có hiệu lực, chúng ta cần tải lại NGINX:
Mã:
sudo systemctl reload nginx.service

Bước 5 - Cài đặt và thiết lậpWiki.js​

Tạo thư mục gốc của tài liệu nơi Wiki.js sẽ nằm:
Mã:
sudo mkdir -p /var/www/wiki.js
Điều hướng đến thư mục gốc của tài liệu:
Mã:
cd /var/www/wiki.js
Thay đổi quyền sở hữu của thư mục/var/www/wiki.jsthànhyour_user:
Mã:
sudo chown -R [your_user]:[your_user] /var/www/wiki.js
LƯU Ý:Thay thế your_user trong lệnh trên bằng người dùng không phải root mà bạn đã tạo làm điều kiện tiên quyết cho hướng dẫn này.

Từ/var/www/wiki.jsthư mục, chạy lệnh sau để tải và cài đặt ứng dụng Wiki.js mới nhất:
Mã:
curl -sSo- https://wiki.js.org/install.sh | bash
Sau khi cài đặt hoàn tất, bạn có thể chạy lệnh sau để xem phiên bản Wiki.js hiện đang được cài đặt:
Mã:
node wiki --version
# 1.0.117
Sau khi cài đặt hoàn tất, bạn sẽ được nhắc khởi chạy trình hướng dẫn cấu hình.

Vì vậy, hãy khởi chạy trình hướng dẫn cấu hình bằng cách chạy:
Mã:
node wiki configure
Sử dụng trình duyệt web của bạn, điều hướng đếnhttp://example.comvà làm theo hướng dẫn trên màn hình. Tất cả các thiết lập được nhập trong trình hướng dẫn cấu hình đều được lưu trong tệpconfig.yml. Trình hướng dẫn cấu hình sẽ tự động khởi động Wiki.js cho bạn.

Đầu tiên, bạn sẽ thấy một thông báo chào mừng. Nhấp vào nút "Bắt đầu":



Trang "Kiểm tra hệ thống" tiếp theo sẽ xuất hiện. Nếu tất cả các yêu cầu được đáp ứng, hãy nhấp vào nút "Tiếp tục".



Nhập thông tin chung về wiki của bạn và nhấp vào nút "Tiếp tục":



Đọc thông báo "Cân nhắc quan trọng" và nhấp vào "Tiếp tục" để biết bước tiếp theo:



Tiếp theo, kết nối với cơ sở dữ liệu và tiếp tục:



Bạn sẽ thấy thông báo rằng Wiki.js đã đượckết nối thành côngvới cơ sở dữ liệu. Nhấp vào nút "Tiếp tục":



Đặt đường dẫn và tiếp tục:



Thiết lập kho lưu trữ Git từ xa nếu bạn muốn hoặc bỏ qua bước này. Bước này là tùy chọn nhưng được khuyến khích:



Tiếp theo, nhấp vào nút "Tiếp tục":



Tạo tài khoản quản trị viên và nhấp vào nút "Tiếp tục":



Và cuối cùng, khởi động Wiki.js:



Chờ khoảng 30 giây và bạn sẽ được chuyển hướng đến trang chủ Wiki.js:



Quá trình cài đặt đã hoàn tất. Bạn sẽ thấy trang chào mừng của wiki:


Bước 6 - Thiết lập PM2 Process Manager​

Theo mặc định, Wiki.js sẽ không tự động khởi động sau khi khởi động lại hệ thống. Để khởi động khi khởi động, chúng ta cần thiết lập PM2 process manager. PM2 đi kèm với Wiki.js dưới dạng một mô-đun localnpm, vì vậy chúng ta không cần cài đặt PM2 toàn cục.

Yêu cầu PM2 tự cấu hình thành một dịch vụ khởi động bằng cách chạy:
Mã:
/var/www/wiki.js/node_modules/pm2/bin/pm2 startup
Cuối cùng, lưu cấu hình PM2 hiện tại bằng cách chạy lệnh:
Mã:
/var/www/wiki.js/node_modules/pm2/bin/pm2 save
Wiki.js của bạn hiện chạy dưới dạng một quy trình nền, sử dụng PM2 làm trình quản lý quy trình của nó.

Liên kết​

 
Back
Bên trên