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

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

ความต้องการ

ข้อกำหนดในการเรียกใช้ Wiki.js และทำตามคู่มือนี้ให้เสร็จสิ้นมีดังนี้:

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

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

lsb_release -ds
# Ubuntu 18.04.4 LTS

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

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

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

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

sudo dpkg-reconfigure tzdata

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

sudo apt update && sudo apt upgrade -y

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

sudo apt install -y build-essential apt-transport-https

ติดตั้ง Git

Git 2.7.4 มาติดตั้งไว้แล้วบน Ubuntu Server edition ดังนั้นเราไม่จำเป็นต้องติดตั้ง หากคุณต้องการติดตั้งเวอร์ชันที่ใหม่กว่าคุณสามารถใช้ PPA ของบุคคลที่สามหรือรวบรวม Git รุ่นล่าสุดจากแหล่งที่มา

คุณสามารถตรวจสอบเวอร์ชัน Git ที่ติดตั้งอยู่ในปัจจุบันได้โดยการเรียกใช้:

git --version
# git version 2.7.4

หากคุณต้องการติดตั้งซอฟต์แวร์ Git เวอร์ชันใหม่คุณสามารถใช้สิ่งต่อไปนี้

# 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

ตรวจสอบรุ่น Git

git --version
# git version 2.17.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

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

ติดตั้ง MongoDB Community Edition

sudo apt install -y mongodb

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

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

ติดตั้งและกำหนดค่า 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/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

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

sudo nginx -v
# nginx version: nginx/1.15.0

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

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

กำหนดค่า Nginx เป็น reverse 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ไม่จำเป็น แต่มันจะรักษาความปลอดภัยการเข้าชมเว็บไซต์ของคุณ Acme.sh เป็นซอฟต์แวร์เชลล์ unix บริสุทธิ์สำหรับการรับใบรับรอง SSL จาก Let's Encrypt โดยไม่ต้องพึ่งพาศูนย์

ดาวน์โหลดและติดตั้ง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

รับใบรับรอง RSA และ 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 [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ไดเรกทอรี

หลังจากได้รับใบรับรองจาก 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.js รุ่นที่ติดตั้งอยู่ในปัจจุบันคุณสามารถเรียกใช้คำสั่งต่อไปนี้

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 เป็นผู้จัดการกระบวนการ



Leave a Comment

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

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน