Követelmények
Telepítse a Git-et
Telepítse a Node.js-t
Telepítse a MongoDB-t
Telepítse és konfigurálja az Nginx-et
Telepítse az Acme.sh-t, és szerezzen be egy Let's Encrypt tanúsítványt (opcionális)
Telepítse a Wiki.js-t
PM2 beállítása
A Wiki.js egy ingyenes és nyílt forráskódú, modern wikialkalmazás , amely Node.js-re, MongoDB-re, Git-re és Markdownra épül. Wiki.js forráskód nyilvánosan tárolt GitHub . Ez az útmutató bemutatja, hogyan telepítheti a Wiki.js-t egy friss Debian 9 Vultr példányra Node.js, MongoDB, PM2, Nginx, Git és Acme.sh használatával.
Követelmények
- Node.js 6.9.0 vagy újabb
- MongoDB 3.2 vagy újabb
- Nginx
- Git 2.7.4 vagy újabb
- Git-kompatibilis adattár (nyilvános vagy privát) ( opcionális )
- Minimum az
768MB RAM
- Domain név a
A/ AAAArekordokkal beállítva
Ellenőrizze a Debian verziót.
lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)
Győződjön meg arról, hogy rendszere naprakész.
apt update && apt upgrade -y
Telepítse a szükséges csomagokat.
apt install -y build-essential apt-transport-https sudo curl wget dirmngr sudo
Hozzon létre egy új non-rootfelhasználói fiókot sudohozzáféréssel, és váltson rá.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe
MEGJEGYZÉS : Cserélje johndoeki a felhasználónevét.
Állítsa be az időzónát.
sudo dpkg-reconfigure tzdata
Telepítse a Git-et
Telepítse a Git-et Debianra.
sudo apt install -y git
Ellenőrizze a Git verziót.
git --version
# git version 2.11.0
Telepítse a Node.js-t
Telepítse a Node.js fájlt a Node.js NodeSource APT lerakatának használatával.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs
Ellenőrizze a Node.js és npm verziókat.
node -v && npm -v
# v8.11.2
# 5.6.0
Telepítse a MongoDB-t
A Wiki.js a MongoDB-t használja adatbázismotorként. Ennek megfelelően telepítenünk kell a MongoDB-t a szerverünkre. A telepítéshez a hivatalos MongoDB adattárakat fogjuk használni .
Telepítse a MongoDB Community Edition-t.
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
Ellenőrizze a verziót.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v3.6.5
# db version v3.6.5
Engedélyezze és indítsa el a MongoDB-t.
sudo systemctl enable mongod.service
sudo systemctl start mongod.service
Erősen ajánlott egy szabványos webszervert a Wiki.js elé tenni. Ez biztosítja, hogy olyan funkciókat használhasson, mint az SSL, több webhely, gyorsítótár és sok más. Ebben az oktatóanyagban az Nginxet fogjuk használni, de bármely más szerver megteszi, csak megfelelően kell konfigurálnia.
Telepítse az Nginx-et.
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
Ellenőrizze a verziót.
sudo nginx -v
# nginx version: nginx/1.15.0
Engedélyezze és indítsa el az Nginxet.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Konfigurálja az Nginx-et a Wiki.js alkalmazáshoz HTTPvagy HTTPS(ha SSL-t használ) fordított proxyként.
Futtassa sudo vim /etc/nginx/conf.d/wiki.js.confés töltse fel az alábbi alapvető fordított proxykonfigurációval.
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;
}
}
Az egyetlen dolog, amit a fenti konfigurációban módosítani kell, az az server_namedirektíva, és potenciálisan a proxy_passdirektíva, ha úgy dönt, hogy a porton kívül más portot állít be 3000. A Wiki.js 3000alapértelmezés szerint a portot használja .
Ellenőrizze a konfigurációt.
sudo nginx -t
Töltse újra az Nginxet.
sudo systemctl reload nginx.service
Telepítse az Acme.sh-t, és szerezzen be egy Let's Encrypt tanúsítványt (opcionális)
A wiki biztonságossá tétele HTTPSnem szükséges, de jó gyakorlat a webhely forgalmának biztosítása. A Let's Encrypt SSL-tanúsítvány beszerzéséhez az Acme.sh klienst használjuk. Az Acme.sh egy tisztán unix shell szoftver SSL-tanúsítványok beszerzéséhez a Let's Encrypt-től nulla függőséggel. Ez nagyon könnyűvé teszi néhány más ACME protokoll klienshez képest, amelyek sok függőséget igényelnek a sikeres futtatáshoz.
Töltse le és telepítse az Acme.sh-t.
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 ~
Ellenőrizze a verziót.
/etc/letsencrypt/acme.sh --version
# v2.7.9
Szerezzen be RSA és ECDSA tanúsítványt a következőhöz: 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
MEGJEGYZÉS : Ne felejtse el lecserélni wiki.example.coma domain nevét.
A fenti parancsok futtatása után a tanúsítványok és kulcsok a következő könyvtárakban lesznek.
- RSA esetén:
/etc/letsencrypt/wiki.example.comkönyvtár.
- ECC/ECDSA esetén:
/etc/letsencrypt/wiki.example.com_ecckönyvtár.
Miután megszereztük a Let's Encrypt tanúsítványait, konfigurálnunk kell az Nginxet, hogy kihasználjuk őket.
Futtassa sudo vim /etc/nginx/conf.d/wiki.js.confújra, és állítsa be az Nginx-et HTTPSfordított proxyként.
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;
}
}
Ellenőrizze a konfigurációt.
sudo nginx -t
Töltse újra az Nginxet.
sudo systemctl reload nginx.service
Telepítse a Wiki.js-t
Hozzon létre egy üres dokumentum gyökérmappát, ahová telepíteni kell a Wiki.js-t.
sudo mkdir -p /var/www/wiki.example.com
Navigáljon a dokumentum gyökérmappájához.
cd /var/www/wiki.example.com
A /var/www/wiki.example.commappa tulajdonjogának módosítása felhasználóra johndoe.
sudo chown -R johndoe:johndoe /var/www/wiki.example.com
A /var/www/wiki.example.commappából futtassa a következő parancsot a Wiki.js letöltéséhez és telepítéséhez.
curl -sSo- https://wiki.js.org/install.sh | bash
A következő parancs futtatásával megtekintheti a Wiki.js aktuálisan telepített verzióját.
node wiki --version
# 1.0.78
A telepítés befejezése után a rendszer felkéri a konfigurációs varázsló futtatására.
Indítsa el a konfigurációs varázslót a futtatással.
node wiki configure
Ez értesíti, hogy navigáljon ide a http://localhost:3000Wiki.js konfigurálásához. Ha Nginx van a Wiki.js előtt, akkor ez azt jelenti, hogy megnyithatja a domain nevét (pl. http://wiki.example.com) ahelyett, hogy a webhelyre menne localhost.
A webböngészővel keresse meg http://wiki.example.coma képernyőn megjelenő utasításokat , és kövesse azt. A konfigurációs varázsló során megadott összes beállítás a config.ymlfájlba kerül. A konfigurációs varázsló automatikusan elindítja a Wiki.js fájlt.
PM2 beállítása
Alapértelmezés szerint a Wiki.js nem indul el automatikusan a rendszer újraindítása után. Annak érdekében, hogy elinduljon a rendszerindításkor, be kell állítanunk a PM2 folyamatkezelőt. A PM2 helyi NPM-modulként a Wiki.js-szel együtt érkezik, így nem kell globálisan telepítenünk a PM2-t.
Mondja meg a PM2-nek, hogy konfigurálja magát indítási szolgáltatásként.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup
Végül mentse el az aktuális PM2 konfigurációt.
/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save
A Wiki.js példány háttérfolyamatként fut, folyamatkezelőként a PM2-t használva. Újraindíthatja az operációs rendszert, sudo rebootés ellenőrizheti, hogy a Wiki.js elindul-e újraindítás után.