Krav
Installer Git
Installer Node.js
Installer MongoDB
Installer og konfigurer Nginx
Installer Acme.sh-klienten og få et Let's Encrypt-sertifikat (valgfritt)
Installer Wiki.js
Sett opp PM2
Wiki.js er en gratis og åpen kildekode, moderne wiki-applikasjon bygget på Node.js, MongoDB, Git og Markdown. Wiki.js kildekode er offentlig vert på Github . Denne guiden viser deg hvordan du installerer Wiki.js på en fersk CentOS 7 Vultr-forekomst ved å bruke Node.js, MongoDB, PM2, Nginx, Git og Acme.sh.
Krav
Kravene for å kjøre Wiki.js er følgende:
- Node.js versjon 6.9.0 eller nyere
- MongoDB versjon 3.2 eller nyere
- Nginx
- Git versjon 2.7.4 eller nyere
- Et Git-kompatibelt depot (offentlig eller privat) ( valgfritt )
- Minimum 768 MB RAM
- Domenenavn med
A/ AAAAposter satt opp
Sjekk CentOS-versjonen.
cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)
Opprett en ny non-rootbrukerkonto med sudotilgang og bytt til den.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
MERK : Erstatt johndoemed brukernavnet ditt .
Sett opp tidssonen.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Sørg for at systemet ditt er oppdatert.
sudo yum update -y
Installer nødvendige pakker for å fullføre denne opplæringen.
sudo yum install -y wget curl vim zip unzip bash-completion
Deaktiver SELinux og brannmur.
sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld
Aktiver EPEL-depotet.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Installer Git
CentOS-lagre gir en veldig utdatert versjon av Git, så vi må bygge Git fra kilden.
Installer Git ved å bygge den fra kildekoden.
# 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
Bekreft versjonen.
git --version
# git version 2.17.1
Installer Node.js
Wiki.js krever Node.js 6.9.0 eller nyere, så vi må først installere Node.js.
Installer Node.js ved å bruke NodeSource YUM-depotet for Node.js.
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs
Sjekk Node.js- og NPM-versjonene.
node -v && npm -v
# v8.11.2
# 5.6.0
Installer MongoDB
Wiki.js bruker MongoDB som en databasemotor. Vi vil bruke de offisielle MongoDB-repositoriene , som inneholder de siste store og mindre MongoDB-utgivelsene.
Installer 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
Sjekk versjonen.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.5
# db version v3.6.5
Aktiver og start MongoDB.
sudo systemctl enable mongod.service
sudo systemctl start mongod.service
Det anbefales sterkt å sette en standard webserver foran Wiki.js. Dette sikrer at du kan bruke funksjoner som SSL, flere nettsteder, caching og mer.
Installer 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
Sjekk versjonen.
nginx -v
# nginx version: nginx/1.15.0
Aktiver og start Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Konfigurer Nginx som en HTTPeller HTTPSomvendt proxy for Wiki.js.
Kjør sudo vim /etc/nginx/conf.d/wiki.js.confog fyll den med den grunnleggende omvendte proxy-konfigurasjonen nedenfor.
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;
}
}
Det eneste du trenger å endre i konfigurasjonen ovenfor er server_namedirektiv, og potensielt proxy_passdirektiv hvis du bestemmer deg for å konfigurere en annen port enn 3000. Wiki.js bruker port 3000som standard.
Sjekk konfigurasjonen.
sudo nginx -t
Last inn Nginx på nytt.
sudo systemctl reload nginx.service
Installer Acme.sh-klienten og få et Let's Encrypt-sertifikat (valgfritt)
Det HTTPSer ikke nødvendig å sikre wikien din med , men det er en god praksis å sikre trafikken til nettstedet ditt. For å få et SSL-sertifikat fra Let's Encrypt, vil vi bruke Acme.sh-klienten. Acme.sh er et rent UNIX-skallskript for å få SSL-sertifikater fra Let's Encrypt med null avhengigheter. Det gjør den veldig lett sammenlignet med noen andre Acme-protokollklienter som krever mange avhengigheter for å kjøre vellykket.
Last ned og installer 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 ~
Sjekk versjonen.
/etc/letsencrypt/acme.sh --version
# v2.7.9
Skaff RSA- og ECDSA-sertifikater for ditt domene/vertsnavn.
# 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
Etter å ha kjørt kommandoene ovenfor, vil sertifikatene og nøklene dine være i følgende kataloger:
- For RSA:
/etc/letsencrypt/wiki.example.com
- For ECC/ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
MERK : Ikke glem å erstatte wiki.example.commed ditt domenenavn.
Etter å ha fått sertifikater fra Let's Encrypt, må vi konfigurere Nginx for å dra nytte av dem.
Kjør sudo vim /etc/nginx/conf.d/wiki.js.configjen og konfigurer Nginx som en HTTPSomvendt proxy.
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;
}
}
Sjekk konfigurasjonen.
sudo nginx -t
Last inn Nginx på nytt.
sudo systemctl reload nginx.service
Installer Wiki.js
Opprett en tom dokumentrotmappe der Wiki.js skal installeres.
sudo mkdir -p /var/www/wiki.example.com
Naviger til dokumentrotmappen.
cd /var/www/wiki.example.com
Endre eierskap av /var/www/wiki.example.commappen til bruker johndoe.
sudo chown -R johndoe:johndoe /var/www/wiki.example.com
Fra /var/www/wiki.example.commappen, kjør følgende kommando for å laste ned og installere Wiki.js.
curl -sSo- https://wiki.js.org/install.sh | bash
Du kan kjøre følgende kommando for å se den installerte versjonen av Wiki.js.
node wiki --version
# 1.0.78
Når installasjonen er fullført, vil du bli bedt om å kjøre konfigurasjonsveiviseren.
Start konfigurasjonsveiviseren.
node wiki configure
Dette vil varsle deg om å navigere til for http://localhost:3000å konfigurere Wiki.js. Hvis du har Nginx foran Wiki.js, kan du åpne domenenavnet ditt (f.eks. http://wiki.example.com) i stedet for å gå til localhost.
Bruk nettleseren din, naviger til http://wiki.example.comog følg instruksjonene på skjermen. Alle innstillingene som ble angitt under konfigurasjonsveiviseren er lagret i config.ymlfilen. Konfigurasjonsveiviseren vil automatisk starte Wiki.js for deg.
Sett opp PM2
Som standard vil ikke Wiki.js starte automatisk etter en omstart av systemet. For å få det til å starte ved oppstart, må vi sette opp PM2-prosessbehandleren.
Be PM2 om å konfigurere seg selv som en oppstartstjeneste.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup
Til slutt lagrer du gjeldende PM2-konfigurasjon ved å kjøre kommandoen.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save
Wiki.js-forekomsten din kjører som en bakgrunnsprosess, og bruker PM2 som prosessbehandler. Du kan starte operativsystemet på nytt med sudo rebootog sikre at Wiki.js starter etter en omstart.