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

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

ความต้องการ

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

ตรวจสอบเวอร์ชั่นของเดเบียน

lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)

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

apt update && apt upgrade -y

ติดตั้งแพ็คเกจที่จำเป็น

apt install -y build-essential apt-transport-https sudo curl wget dirmngr sudo

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

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

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

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

sudo dpkg-reconfigure tzdata

ติดตั้ง Git

ติดตั้ง Git บน Debian

sudo apt install -y git

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

git --version
# git version 2.11.0

ติดตั้ง Node.js

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

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt 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 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt update
sudo apt 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 ในบทช่วยสอนนี้ แต่เซิร์ฟเวอร์อื่น ๆ จะทำคุณเพียงแค่ต้องกำหนดค่าให้ถูกต้อง

ติดตั้ง 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/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

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

sudo nginx -v
# nginx version: nginx/1.15.0

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

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

กำหนดค่า Nginx เป็นพร็อกซีย้อนกลับHTTPหรือHTTPS(ถ้าคุณใช้ SSL) สำหรับแอปพลิเคชัน 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 3000Wiki.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 your_email@example.com
cd ~

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

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

ได้รับอาร์เอสและ ECDSA wiki.example.comใบรับรองสำหรับ

# 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 

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

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

  • สำหรับ/etc/letsencrypt/wiki.example.comไดเร็กทอรีRSA:
  • สำหรับ/etc/letsencrypt/wiki.example.com_eccไดเร็กทอรีECC / ECDSA:

หลังจากได้รับใบรับรองจาก 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/example.com.key;
    # ECDSA
    ssl_certificate /etc/letsencrypt/wiki.example.com_ecc/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/wiki.example.com_ecc/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 มาพร้อมกับ Wiki.js เป็นโมดูล NPM ในระบบดังนั้นเราไม่จำเป็นต้องติดตั้ง 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 เริ่มทำงานหลังจากรีบูตหรือไม่

ฝากความเห็น

วิธีการติดตั้ง 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