วิธีการติดตั้ง Wiki.js บน CentOS 7

Wiki.jsเป็นแอปพลิเคชั่นวิกิที่ทันสมัยฟรีและโอเพนซอร์สที่สร้างขึ้นบน Node.js, MongoDB, Git และ Markdown รหัสที่มา Wiki.js เป็นเจ้าภาพสาธารณะบนGithub คู่มือนี้จะแสดงวิธีการติดตั้�� Wiki.js บนอินสแตนซ์ CentOS 7 Vultr ใหม่โดยใช้ Node.js, MongoDB, PM2, Nginx, Git และ Acme.sh

ความต้องการ

ข้อกำหนดในการเรียกใช้ Wiki.js มีดังต่อไปนี้:

  • Node.js เวอร์ชั่น 6.9.0 หรือใหม่กว่า
  • MongoDB เวอร์ชั่น 3.2 ขึ้นไป
  • Nginx
  • Git เวอร์ชั่น 2.7.4 หรือใหม่กว่า
  • พื้นที่เก็บข้อมูลที่สอดคล้องกับ Git (สาธารณะหรือส่วนตัว) ( ตัวเลือก )
  • RAM ขั้นต่ำ 768MB
  • ชื่อโดเมนที่มีA/ AAAAบันทึกการตั้งค่า

ตรวจสอบเวอร์ชั่น CentOS

cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)

สร้างnon-rootบัญชีผู้ใช้ใหม่ด้วยsudoการเข้าถึงและเปลี่ยนเป็นบัญชี

useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe

หมายเหตุ : แทนที่johndoeด้วยชื่อผู้ใช้ของคุณ

ตั้งค่าเขตเวลา

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

ตรวจสอบให้แน่ใจว่าระบบของคุณทันสมัย

sudo yum update -y

ติดตั้งแพ็คเกจที่จำเป็นเพื่อทำแบบฝึกหัดนี้ให้เสร็จ

sudo yum install -y wget curl vim zip unzip bash-completion

ปิดใช้งาน SELinux และไฟร์วอลล์

sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld

เปิดใช้งานที่เก็บ EPEL

sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

ติดตั้ง Git

CentOS ที่เก็บมี Git รุ่นที่ล้าสมัยมากดังนั้นเราจะต้องสร้าง Git จากแหล่งที่มา

ติดตั้ง Git โดยสร้างจากซอร์สโค้ด

# Remove existing git package if installed: 
sudo yum remove -y git
sudo yum groupinstall -y "Development Tools"
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.17.1.tar.gz && tar zxvf git-2.17.1.tar.gz
rm git-2.17.1.tar.gz
cd git-2.17.1
make configure
./configure
make prefix=/usr/local all
sudo make prefix=/usr/local install
cd ~

# Confirm this command returns /usr/local/bin/git:
which git

ตรวจสอบเวอร์ชั่น

git --version
# git version 2.17.1

ติดตั้ง Node.js

Wiki.js ต้องการ Node.js 6.9.0 หรือใหม่กว่าดังนั้นเราจะต้องติดตั้ง Node.js ก่อน

ติดตั้ง Node.js โดยใช้ที่เก็บ NodeSource YUM สำหรับ Node.js

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs

ตรวจสอบรุ่น Node.js และ NPM

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

ติดตั้ง MongoDB

Wiki.js ใช้ MongoDB เป็นเอ็นจิ้นฐานข้อมูล เราจะใช้คลังเก็บ MongoDBอย่างเป็นทางการซึ่งมีการเปิดตัว MongoDB รุ่นใหญ่และรุ่นรองล่าสุด

ติดตั้ง MongoDB Community Edition

sudo vim /etc/yum.repos.d/mongodb-org-3.6.repo

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

sudo yum install -y mongodb-org

ตรวจสอบเวอร์ชั่น

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

เปิดใช้งานและเริ่ม MongoDB

sudo systemctl enable mongod.service
sudo systemctl start mongod.service

ติดตั้งและกำหนดค่า Nginx

ขอแนะนำอย่างยิ่งให้วางเว็บเซิร์ฟเวอร์มาตรฐานไว้หน้า Wiki.js สิ่งนี้ทำให้มั่นใจได้ว่าคุณสามารถใช้คุณสมบัติเช่น SSL, เว็บไซต์หลายแห่ง, แคชและอื่น ๆ

ติดตั้ง Nginx

sudo vim /etc/yum.repos.d/nginx_mainline.repo

# Copy/paste this
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=1

wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
rm nginx_signing.key

sudo yum install -y nginx

ตรวจสอบเวอร์ชั่น

nginx -v
# nginx version: nginx/1.15.0

เปิดใช้งานและเริ่ม Nginx

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

กำหนดค่า Nginx เป็นHTTPหรือHTTPSย้อนกลับ proxy สำหรับ Wiki.js

รันsudo vim /etc/nginx/conf.d/wiki.js.confและเติมด้วยการกำหนดค่าพร็อกซีย้อนกลับพื้นฐานด้านล่าง

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;
    }

}

สิ่งเดียวที่คุณจำเป็นต้องมีการเปลี่ยนแปลงในการกำหนดค่าข้างต้นเป็นserver_nameคำสั่งและอาจproxy_passสั่งถ้าคุณตัดสินใจที่จะกำหนดค่าพอร์ตอื่น ๆ 3000ที่ไม่ใช่ Wiki.js ใช้พอร์ต3000ตามค่าเริ่มต้น

ตรวจสอบการกำหนดค่า

sudo nginx -t

โหลดซ้ำ Nginx

sudo systemctl reload nginx.service

ติดตั้งไคลเอนต์ Acme.sh และรับใบรับรอง Let's Encrypt (ตัวเลือก)

การรักษาความปลอดภัย wiki ของคุณHTTPSไม่จำเป็น แต่เป็นการปฏิบัติที่ดีในการรักษาความปลอดภัยของการรับส่งข้อมูลของเว็บไซต์ ในการรับใบรับรอง SSL จาก Let's Encrypt เราจะใช้ไคลเอ็นต์ Acme.sh Acme.sh เป็นเชลล์สคริปต์ UNIX ล้วนสำหรับรับใบรับรอง SSL จาก Let's Encrypt โดยไม่มีการพึ่งพาศูนย์ ซึ่งทำให้มีน้ำหนักเบามากเมื่อเปรียบเทียบกับไคลเอนต์โปรโตคอล Acme อื่น ๆ ที่ต้องการการพึ่งพาจำนวนมากเพื่อให้ทำงานได้สำเร็จ

ดาวน์โหลดและติดตั้ง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 [email protected]
cd ~

ตรวจสอบเวอร์ชั่น

/etc/letsencrypt/acme.sh --version
# v2.7.9

รับใบรับรอง RSA และ ECDSA สำหรับโดเมน / ชื่อโฮสต์ของคุณ

# 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 [email protected] --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 [email protected] --ocsp-must-staple --keylength ec-256 

หลังจากเรียกใช้คำสั่งข้างต้นใบรับรองและคีย์ของคุณจะอยู่ในไดเรกทอรีต่อไปนี้:

  • สำหรับ RSA: /etc/letsencrypt/wiki.example.com
  • สำหรับ ECC / ECDSA: /etc/letsencrypt/wiki.example.com_ecc

หมายเหตุ : อย่าลืมแทนที่wiki.example.comด้วยชื่อโดเมนของคุณ

หลังจากได้รับใบรับรองจาก Let's Encrypt เราต้องกำหนดค่า Nginx เพื่อใช้ประโยชน์จากพวกเขา

รันsudo vim /etc/nginx/conf.d/wiki.js.confอีกครั้งและกำหนดค่า Nginx เป็นHTTPSพร็อกซีย้อนกลับ

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;
    }

}

ตรวจสอบการกำหนดค่า

sudo nginx -t

โหลดซ้ำ Nginx

sudo systemctl reload nginx.service

ติดตั้ง Wiki.js

สร้างโฟลเดอร์รูทเอกสารเปล่าที่ควรติดตั้ง Wiki.js

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

นำทางไปยังโฟลเดอร์รูทเอกสาร

cd /var/www/wiki.example.com

เปลี่ยนความเป็นเจ้าของของโฟลเดอร์ให้กับผู้ใช้/var/www/wiki.example.comjohndoe

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

จาก/var/www/wiki.example.comโฟลเดอร์ให้รันคำสั่งต่อไปนี้เพื่อดาวน์โหลดและติดตั้ง Wiki.js

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

คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อดู Wiki.jpg รุ่นที่ติดตั้งอยู่ในปัจจุบัน

node wiki --version
# 1.0.78

เมื่อการติดตั้งเสร็จสมบูรณ์คุณจะได้รับแจ้งให้เรียกใช้ตัวช่วยสร้างการกำหนดค่า

เริ่มตัวช่วยสร้างการกำหนดค่า

node wiki configure

นี่จะแจ้งให้คุณนำทางไปยังhttp://localhost:3000การกำหนดค่า Wiki.js ถ้าคุณมี Nginx ในด้านหน้าของ Wiki.js คุณสามารถเปิดชื่อโดเมนของคุณ (เช่นhttp://wiki.example.com) localhostแทนที่จะไป

ใช้เว็บเบราว์เซอร์นำทางhttp://wiki.example.comและทำตามคำแนะนำบนหน้าจอ การตั้งค่าทั้งหมดที่ป้อนระหว่างตัวช่วยสร้างการกำหนดค่าถูกบันทึกไว้ในconfig.ymlไฟล์ วิซาร์ดการตั้งค่าจะเริ่มต้น Wiki.js ให้คุณโดยอัตโนมัติ

ติดตั้ง PM2

ตามค่าเริ่มต้น Wiki.js จะไม่เริ่มทำงานโดยอัตโนมัติหลังจากรีบูตระบบ เพื่อให้เริ่มต้นระบบได้เราจำเป็นต้องตั้งค่าตัวจัดการกระบวนการ PM2

บอก PM2 เพื่อกำหนดค่าตัวเองเป็นบริการเริ่มต้น

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

สุดท้ายให้บันทึกการกำหนดค่า PM2 ปัจจุบันโดยการรันคำสั่ง

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

อินสแตนซ์ Wiki.js ของคุณทำงานเป็นกระบวนการพื้นหลังโดยใช้ PM2 เป็นผู้จัดการกระบวนการ คุณสามารถรีบูตระบบปฏิบัติการของคุณด้วยsudo rebootและให้แน่ใจว่า Wiki.js เริ่มต้นหลังจากรีบูต



Leave a Comment

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true