Cách cài đặt Wiki.js trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
Wiki.js là một ứ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 Ubuntu 18.04 LTSbởi sử dụng NGINXlà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ụng máy khách acme.sh 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 như sau:
  • Node.js 6.11.1 đến 10.x là bắt buộc.
  • Phiên bản MongoDB3.2trở lên.
  • Phiên bản Git2.7.4trở 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 Ubuntu 18.04 LTS hệ thống.
  • Người dùng không phải root có quyền sudo.

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

Kiểm tra phiên bản Ubuntu của bạn:
Mã:
lsb_release -ds[B]# Ubuntu 18.04.1 LTS
Thiết lập múi giờ:
Mã:
sudo dpkg-reconfigure tzdata
Cập nhật các gói hệ điều hành (phần mềm) của bạn. Đâ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 apt update && sudo apt upgrade -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 Ubuntu:
Mã:
sudo apt install -y curl wget vim gitunzip socat bash-completion apt-transport-https build-essential

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 Quản lý gói 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 khuyến nghịcủaNode.js từ kho lưu trữ NodeSource:
Mã:
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
LƯU Ý:npm được phân phối cùng với Node.js - điều đó có nghĩa là khi bạn tải xuống Node.js, bạn sẽ tự động cài đặt npm trên hệ thống của mình.

Kiểm tra phiên bản Node.js và npm:
Mã:
node -v && npm -v
# v10.15.1
# 6.4.1
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 xuống 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, hãy nhập lệnh này vào terminal của bạn:

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 lệnh:
Mã:
npm -v
# 6.8.0
Và lệnh này 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 có cơ sở dữ liệu để lưu trữ dữ liệu 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ải xuống và cài đặt cơ sở dữ liệu MongoDB:
Mã:
sudo apt install -y mongodb
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 v3.6.3
# Phiên bản db v3.6.3
Startandenable(đặt để bắt đầu 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 mongodb.service
sudo systemctl enable mongodb.service

Bước 3 - Cài đặtacme.shclient 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à một 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 ứng dụng khách acme.sh. Acme.sh là phần mềm shell UNIX thuần túy để lấy chứng chỉ SSL từ Let's Encrypt mà không cần phụ thuộc.

Tải xuống và cài đặtacme.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 --danh sách
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ứ gì 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ẽ là trong:
  • Đối vớiRSA:/etc/letsencrypt/example.comthư mục.
  • Đối vớiECC/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à quay 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 (chẳng hạn như NGINX hoặc Apache). Tuy nhiê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, lưu trữ đệ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 từ kho lưu trữ NGINX chính thức bằng cách đưa ra các lệnh sau:
Mã:
wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/ubuntu/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx
Kiểm tra phiên bản NGINX:
Mã:
sudo nginx -v
# phiên bản nginx: nginx/1.15.8
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.conf
Mã:
sudo vim /etc/nginx/conf.d/wiki.js.conf
và 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; vị trí / { proxy_set_header Máy chủ $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 Nâng cấp $http_upgrade; proxy_set_header Kết nối "nâng cấp"; proxy_next_upstream lỗi hết thời gian chờ 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, tên miền trong đường dẫn tệp ssl và có thể 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ẽ lưu trú:
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
Tạo người dùng cho wikijs
Mã:
sudo useradd-d/var/www/wiki.jswikijs
Thay đổi quyền sở hữu của /var/www/wiki.jsthư mục thành người dùng wikijs:
Mã:
sudo chown -R wikijs:wikijs /var/www/wiki.js
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ã:
cd /var/www/wiki.js
sudo su wikijs
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à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ốithà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 nên wiki trang chào mừng:


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. Để làm cho nó 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