Απαιτήσεις
Εγκαταστήστε το Git
Εγκαταστήστε το Node.js
Εγκαταστήστε το MongoDB
Εγκαταστήστε και ρυθμίστε το Nginx
Εγκαταστήστε το πρόγραμμα-πελάτη Acme.sh και αποκτήστε ένα πιστοποιητικό Let's Encrypt (προαιρετικό)
Εγκαταστήστε το Wiki.js
Ρύθμιση PM2
Το Wiki.js είναι μια δωρεάν και ανοιχτού κώδικα, σύγχρονη εφαρμογή wiki που βασίζεται σε Node.js, MongoDB, Git και Markdown. Ο πηγαίος κώδικας του Wiki.js φιλοξενείται δημόσια στο Github . Αυτός ο οδηγός θα σας δείξει πώς να εγκαταστήσετε το Wiki.js σε μια νέα παρουσία του CentOS 7 Vultr χρησιμοποιώντας Node.js, MongoDB, PM2, Nginx, Git και Acme.sh.
Απαιτήσεις
Οι απαιτήσεις για την εκτέλεση του Wiki.js είναι οι εξής:
- Node.js έκδοση 6.9.0 ή μεταγενέστερη
- MongoDB έκδοση 3.2 ή μεταγενέστερη
- Nginx
- Έκδοση Git 2.7.4 ή μεταγενέστερη
- Ένα αποθετήριο συμβατό με το Git (δημόσιο ή ιδιωτικό) ( προαιρετικό )
- Ελάχιστο 768MB RAM
- Όνομα τομέα με ρύθμιση
A/ AAAAεγγραφές
Ελέγξτε την έκδοση CentOS.
cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)
Δημιουργήστε έναν νέο non-rootλογαριασμό χρήστη με sudoπρόσβαση και μεταβείτε σε αυτόν.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
ΣΗΜΕΙΩΣΗ : Αντικαταστήστε το johndoeμε το όνομα χρήστη σας .
Ρυθμίστε τη ζώνη ώρας.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Βεβαιωθείτε ότι το σύστημά σας είναι ενημερωμένο.
sudo yum update -y
Εγκαταστήστε τα απαραίτητα πακέτα για να ολοκληρώσετε αυτό το σεμινάριο.
sudo yum install -y wget curl vim zip unzip bash-completion
Απενεργοποιήστε το SELinux και το Firewall.
sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld
Ενεργοποιήστε το αποθετήριο EPEL.
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Εγκαταστήστε το Git
Τα αποθετήρια CentOS παρέχουν μια πολύ ξεπερασμένη έκδοση του Git, επομένως θα χρειαστεί να δημιουργήσουμε το Git από την πηγή.
Εγκαταστήστε το Git δημιουργώντας το από τον πηγαίο κώδικα.
# 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
Επαληθεύστε την έκδοση.
git --version
# git version 2.17.1
Εγκαταστήστε το Node.js
Το Wiki.js απαιτεί Node.js 6.9.0 ή νεότερη έκδοση, επομένως θα χρειαστεί πρώτα να εγκαταστήσουμε το Node.js.
Εγκαταστήστε το Node.js χρησιμοποιώντας το αποθετήριο NodeSource YUM για το Node.js.
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum 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 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
Ελέγξτε την έκδοση.
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
Συνιστάται ιδιαίτερα να τοποθετήσετε έναν τυπικό διακομιστή ιστού μπροστά από το Wiki.js. Αυτό διασφαλίζει ότι μπορείτε να χρησιμοποιήσετε λειτουργίες όπως SSL, πολλαπλούς ιστότοπους, προσωρινή αποθήκευση και πολλά άλλα.
Εγκαταστήστε το 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
Ελέγξτε την έκδοση.
nginx -v
# nginx version: nginx/1.15.0
Ενεργοποιήστε και ξεκινήστε το Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Διαμορφώστε το Nginx ως διακομιστή μεσολάβησης HTTPή HTTPSαντίστροφο διακομιστή για το 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δεν είναι απαραίτητη, αλλά είναι μια καλή πρακτική για να εξασφαλίσετε την επισκεψιμότητα του ιστότοπού σας. Για να αποκτήσουμε ένα πιστοποιητικό 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
Αποκτήστε πιστοποιητικά RSA και ECDSA για τον τομέα/όνομα κεντρικού υπολογιστή σας.
# 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
Αφού εκτελέσετε τις παραπάνω εντολές, τα πιστοποιητικά και τα κλειδιά σας θα βρίσκονται στους παρακάτω καταλόγους:
- Για RSA:
/etc/letsencrypt/wiki.example.com
- Για ECC/ECDSA:
/etc/letsencrypt/wiki.example.com_ecc
ΣΗΜΕΙΩΣΗ : Μην ξεχάσετε να αντικαταστήσετε wiki.example.comτο όνομα τομέα σας.
Αφού λάβουμε πιστοποιητικά από το 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.comφακέλου σε χρήστη johndoe.
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 να διαμορφωθεί ως υπηρεσία εκκίνησης.
/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 ξεκινά μετά από μια επανεκκίνηση.