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

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

Wiki.js là một ứng dụng wiki hiện đại, mã nguồn mở miễn phí được xây dựng trên Node.js , Git và Markdown . Mã nguồn Wiki.js được lưu trữ công khai trên Github . Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Wiki.js trên phiên bản Ubuntu 18.04 LTS Vultr mới bằng cách sử dụng Node.js, MongoDB, PM2, Nginx, Git và Acme.sh.

1. Cài đặt Git

Git 2.7.4 được cài đặt sẵn trên phiên bản máy chủ Ubuntu, vì vậy chúng tôi không cần cài đặt nó. Nếu bạn muốn cài đặt phiên bản mới hơn, bạn có thể sử dụng PPA của bên thứ ba hoặc biên dịch phiên bản Git mới nhất từ ​​nguồn.

Bạn có thể xác minh phiên bản Git hiện được cài đặt bằng cách chạy:

git --version
# git version 2.7.4

Nếu bạn muốn cài đặt phiên bản mới hơn của phần mềm Git, bạn có thể sử dụng cách sau.

# Remove existing git package
sudo apt remove -y git
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt update && sudo apt upgrade -y
sudo apt install -y git

Xác minh phiên bản Git.

git --version
# git version 2.17.0

 

2. Cài đặt Node.js

Cài đặt Node.js bằng cách sử dụng kho lưu trữ NodeSource APT cho Node.js.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodej

Kiểm tra phiên bản Node.js và NPM.

node -v && npm -v
# v8.11.2
# 5.6.0

3. Cài đặt MongoDB

Cài đặt MongoDB Community Edition.

sudo apt install -y mongodb

Kiểm tra phiên bản.

mongo –version | head -n 1 && mongod –version | head -n 1
# MongoDB shell version v3.6.3
# db version v3.6.3

4. Cài đặt và định cấu hình Nginx

Cài đặt Nginx.

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.

sudo nginx -v
# nginx version: nginx/1.15.0

Bật và khởi động Nginx.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Định cấu hình Nginx làm proxy ngược cho ứng dụng Wiki.js.

Chạy sudo vim /etc/nginx/conf.d/wiki.js.confvà điền nó với cấu hình proxy ngược cơ bản bên dưới.

server {

    listen [::]:80;
    listen 80;

    server_name wiki.example.com;

    root /usr/share/nginx/html;

    charset utf-8;
    client_max_body_size 50M;

    location /.well-known/acme-challenge/ {
        allow all;
    }

    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_namechỉ thị và có thể là proxy_passchỉ thị nếu bạn quyết định cấu hình bất kỳ cổng nào khác bên cạnh đó 3000. Wiki.js sử dụng cổng 3000theo mặc định.

Kiểm tra cấu hình.

sudo nginx -t

Tải lại Nginx.

sudo systemctl reload nginx.service

5. Cài đặt ứng dụng khách Acme.sh và lấy chứng chỉ Let’s Encrypt (tùy chọn)

Việc bảo mật wiki của bạn HTTPSlà không cần thiết, nhưng nó sẽ đảm bảo lưu lượng truy cập vào trang web của bạn. Acme.sh là một phần mềm unix shell thuần túy để lấy chứng chỉ SSL từ Let’s Encrypt với không phụ thuộc.

Tải về và cài đặt Acme.sh .

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~

Kiểm tra phiên bản.

/etc/letsencrypt/acme.sh --version

Nhận chứng chỉ RSA và ECDSA cho wiki.example.comtên miền / tên máy chủ.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail your_email@example.com --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d wiki.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail your_email@example.com --ocsp-must-staple --keylength ec-256 

Sau khi chạy các lệnh trên, các chứng chỉ và khóa của bạn sẽ ở trong:

  • Đối với RSA: /etc/letsencrypt/wiki.example.comthư mục.
  • Đối với ECC / ECDSA: /etc/letsencrypt/wiki.example.com_eccthư mục.

Sau khi nhận được chứng chỉ từ Let’s Encrypt, chúng ta cần định cấu hình Nginx để sử dụng chúng.

Chạy sudo vim /etc/nginx/conf.d/wiki.js.conflại và định cấu hình Nginx làm HTTPSproxy ngược.

server {

    listen [::]:443 ssl http2;
    listen 443 ssl http2;
    listen [::]:80;
    listen 80;

    server_name wiki.example.com;

    root /usr/share/nginx/html;

    charset utf-8;
    client_max_body_size 50M;

    location /.well-known/acme-challenge/ {
        allow all;
    }

    # RSA
    ssl_certificate /etc/letsencrypt/wiki.example.com/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/wiki.example.com/wiki.example.com.key;
    # ECDSA
    ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/wiki.example.com.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;
    }

}

Kiểm tra cấu hình.

sudo nginx -t

Tải lại Nginx.

sudo systemctl reload nginx.service

6. Cài đặt Wiki.js

Tạo một thư mục gốc tài liệu trống để cài đặt Wiki.js.

sudo mkdir -p /var/www/wiki.example.com

Điều hướng đến thư mục gốc của tài liệu.

cd /var/www/wiki.example.com

Thay đổi quyền sở hữu của /var/www/wiki.example.comthư mục cho người dùng johndoe.

sudo chown -R johndoe:johndoe /var/www/wiki.example.com

Từ /var/www/wiki.example.comthư mục, chạy lệnh sau để tải xuống và cài đặt Wiki.js.

curl -sSo- https://wiki.js.org/install.sh | bash

Để xem phiên bản Wiki.js hiện đã được cài đặt, bạn có thể chạy lệnh sau.

node wiki --version
# 1.0.78

Sau khi cài đặt hoàn tất, bạn sẽ được nhắc chạy trình hướng dẫn cấu hình.

Khởi động trình hướng dẫn cấu hình.

node wiki configure

Thao tác này sẽ thông báo cho bạn duyệt http://localhost:3000để định cấu hình Wiki.js. Nếu bạn có Nginx trước Wiki.js, bạn có thể mở tên miền của mình (ví dụ http://wiki.example.com) thay vì truy cập localhost.

Sử dụng trình duyệt web của bạn, điều hướng đến http://wiki.example.comvà làm theo hướng dẫn trên màn hình. Tất cả các cài đặt đã nhập trong trình hướng dẫn cấu hình sẽ được lưu trong config.ymltệp. Trình hướng dẫn cấu hình sẽ tự động khởi động Wiki.js cho bạn.

7. Cài đặt PM2

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

Yêu cầu PM2 tự định cấu hình như một dịch vụ khởi động.

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup

Cuối cùng, lưu cấu hình PM2 hiện tại.

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save

Be the first to comment

Leave a Reply

Your email address will not be published.


*