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 klienst, é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. A Wiki.js forráskód nyilvánosan a Githubon található . Ez az útmutató bemutatja, hogyan telepítheti a Wiki.js-t egy friss CentOS 7 Vultr példányra Node.js, MongoDB, PM2, Nginx, Git és Acme.sh használatával.
Követelmények
A Wiki.js futtatásának követelményei a következők:
- Node.js 6.9.0 vagy újabb verzió
- MongoDB 3.2 vagy újabb verzió
- Nginx
- Git 2.7.4 vagy újabb verzió
- Git-kompatibilis adattár (nyilvános vagy privát) ( opcionális )
- Minimum 768 MB RAM
- Domain név a
A/ AAAArekordokkal beállítva
Ellenőrizze a CentOS verzióját.
cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)
Hozzon létre egy új non-rootfelhasználói fiókot sudohozzáféréssel, és váltson rá.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
MEGJEGYZÉS : Cserélje johndoeki a felhasználónevével .
Állítsa be az időzónát.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Győződjön meg arról, hogy rendszere naprakész.
sudo yum update -y
Telepítse a szükséges csomagokat az oktatóanyag befejezéséhez.
sudo yum install -y wget curl vim zip unzip bash-completion
Tiltsa le a SELinuxot és a tűzfalat.
sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld
Engedélyezze az EPEL-tárat.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Telepítse a Git-et
A CentOS adattárak a Git nagyon elavult verzióját biztosítják, ezért forrásból kell elkészítenünk a Git-et.
Telepítse a Git-et úgy, hogy a forráskódból építi fel.
# 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
Ellenőrizze a verziót.
git --version
# git version 2.17.1
Telepítse a Node.js-t
A Wiki.js-hez a Node.js 6.9.0 vagy újabb verziója szükséges, ezért először telepítenünk kell a Node.js-t.
Telepítse a Node.js fájlt a Node.js NodeSource YUM lerakatának használatával.
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs
Ellenőrizze a Node.js és az NPM verzióit.
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. A hivatalos MongoDB adattárakat fogjuk használni , amelyek a legújabb nagyobb és kisebb MongoDB-kiadásokat tartalmazzák.
Telepítse a MongoDB Community Edition-t.
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
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.
Telepítse az Nginx-et.
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
Ellenőrizze a verziót.
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
Állítsa be az Nginx-et a Wiki.js számára HTTPvagy HTTPSfordí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 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 klienst, és szerezzen be egy Let's Encrypt tanúsítványt (opcionális)
Securing your wiki with HTTPS is not necessary, but it is a good practice to secure your site traffic. In order to obtain an SSL certificate from Let's Encrypt, we will use Acme.sh client. Acme.sh is a pure UNIX shell script for obtaining SSL certificates from Let's Encrypt with zero dependencies. That makes it very lightweight in comparison to some other Acme protocol clients that require a lot of dependencies to run successfully.
Download and install 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 ~
Check the version.
/etc/letsencrypt/acme.sh --version
# v2.7.9
Obtain RSA and ECDSA certificates for your domain/hostname.
# 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
After running the above commands, your certificates and keys will be in the following directories:
- For RSA:
/etc/letsencrypt/wiki.example.com
- For ECC/ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
NOTE: Don't forget to replace wiki.example.com with your domain name.
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/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;
}
}
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
Módosítsa a /var/www/wiki.example.commappa tulajdonjogát 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.
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, 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 el lett mentve a config.ymlfájlba. 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.
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 az aktuális PM2 konfigurációt a parancs futtatásával.
/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 gondoskodhat arról, hogy a Wiki.js újraindítás után elinduljon.