Kako namestiti Wiki.js na CentOS 7

Wiki.js je brezplačna odprtokodna sodobna wiki aplikacija, zgrajena na Node.js, MongoDB, Git in Markdown. Izvorna koda Wiki.js je javno gostovana na Githubu . Ta priročnik vam bo pokazal, kako namestiti Wiki.js na nov primerek CentOS 7 Vultr z uporabo Node.js, MongoDB, PM2, Nginx, Git in Acme.sh.

Zahteve

Zahteve za zagon Wiki.js so naslednje:

  • Node.js različice 6.9.0 ali novejše
  • MongoDB različica 3.2 ali novejša
  • Nginx
  • Git različica 2.7.4 ali novejša
  • Git skladno skladišče (javno ali zasebno) ( izbirno )
  • Najmanj 768 MB RAM-a
  • Ime domene z A/ AAAAnastavljenimi zapisi

Preverite različico CentOS.

cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)

Ustvarite nov non-rootuporabniški račun z sudodostopom in preklopite nanj.

useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe

OPOMBA : Zamenjajte johndoez vašim uporabniškim imenom .

Nastavite časovni pas.

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Prepričajte se, da je vaš sistem posodobljen.

sudo yum update -y

Namestite potrebne pakete za dokončanje te vadnice.

sudo yum install -y wget curl vim zip unzip bash-completion

Onemogočite SELinux in požarni zid.

sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld

Omogočite skladišče EPEL.

sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Namesti Git

Repozitoriji CentOS zagotavljajo zelo zastarelo različico Gita, zato bomo morali Git zgraditi iz vira.

Namestite Git tako, da ga zgradite iz izvorne kode.

# 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

Preverite različico.

git --version
# git version 2.17.1

Namestite Node.js

Wiki.js zahteva Node.js 6.9.0 ali novejšo različico, zato bomo morali najprej namestiti Node.js.

Namestite Node.js z uporabo repozitorija NodeSource YUM za Node.js.

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum install -y nodejs

Preverite različici Node.js in NPM.

node -v && npm -v
# v8.11.2
# 5.6.0

Namestite MongoDB

Wiki.js uporablja MongoDB kot mehanizem baze podatkov. Uporabili bomo uradna repozitorija MongoDB , ki vsebujejo najnovejše večje in manjše izdaje MongoDB.

Namestite 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

Preverite različico.

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

Omogočite in zaženite MongoDB.

sudo systemctl enable mongod.service
sudo systemctl start mongod.service

Namestite in konfigurirajte Nginx

Zelo priporočljivo je, da pred Wiki.js postavite standardni spletni strežnik. To zagotavlja, da lahko uporabljate funkcije, kot so SSL, več spletnih mest, predpomnjenje in drugo.

Namestite 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

Preverite različico.

nginx -v
# nginx version: nginx/1.15.0

Omogočite in zaženite Nginx.

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

Konfigurirajte Nginx kot HTTPali HTTPSobratni proxy za Wiki.js.

Zaženite ga sudo vim /etc/nginx/conf.d/wiki.js.confin ga napolnite s spodnjo osnovno konfiguracijo povratnega proxyja.

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;
    }

}

Edina stvar, ki jo morate spremeniti v zgornji konfiguraciji, je server_namedirektiva in morda proxy_passdirektiva, če se odločite konfigurirati katera koli druga vrata kot 3000. Wiki.js 3000privzeto uporablja vrata .

Preverite konfiguracijo.

sudo nginx -t

Ponovno naložite Nginx.

sudo systemctl reload nginx.service

Namestite odjemalca Acme.sh in pridobite certifikat Let's Encrypt (izbirno)

Zaščita vašega wikija z HTTPSni potrebna, vendar je dobra praksa za zaščito prometa na spletnem mestu. Za pridobitev SSL certifikata od Let's Encrypt bomo uporabili odjemalca Acme.sh. Acme.sh je čisti skript lupine UNIX za pridobivanje SSL potrdil iz Let's Encrypt z nič odvisnostmi. Zaradi tega je zelo lahek v primerjavi z nekaterimi drugimi odjemalci protokola Acme, ki zahtevajo veliko odvisnosti za uspešno delovanje.

Prenesite in namestite 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 ~

Preverite različico.

/etc/letsencrypt/acme.sh --version
# v2.7.9

Pridobite potrdila RSA in ECDSA za svojo domeno/ime gostitelja.

# 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 

Po zagonu zgornjih ukazov bodo vaši certifikati in ključi v naslednjih imenikih:

  • Za RSA: /etc/letsencrypt/wiki.example.com
  • Za ECC/ECDSA: /etc/letsencrypt/wiki.example.com_ecc

OPOMBA : Ne pozabite zamenjati wiki.example.comz imenom vaše domene.

Po pridobitvi potrdil iz Let's Encrypt moramo konfigurirati Nginx, da jih izkoristi.

Zaženite sudo vim /etc/nginx/conf.d/wiki.js.confznova in konfigurirajte Nginx kot HTTPSpovratni 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;
    }

}

Preverite konfiguracijo.

sudo nginx -t

Ponovno naložite Nginx.

sudo systemctl reload nginx.service

Namestite Wiki.js

Ustvarite prazno korensko mapo dokumenta, kamor naj bo nameščen Wiki.js.

sudo mkdir -p /var/www/wiki.example.com

Pomaknite se do korenske mape dokumenta.

cd /var/www/wiki.example.com

Spremeni lastništvo /var/www/wiki.example.commape na uporabnika johndoe.

sudo chown -R johndoe:johndoe /var/www/wiki.example.com

V /var/www/wiki.example.commapi zaženite naslednji ukaz, da prenesete in namestite Wiki.js.

curl -sSo- https://wiki.js.org/install.sh | bash

Za ogled trenutno nameščene različice Wiki.js lahko zaženete naslednji ukaz.

node wiki --version
# 1.0.78

Ko je namestitev končana, boste pozvani, da zaženete čarovnika za konfiguracijo.

Zaženite čarovnika za konfiguracijo.

node wiki configure

To vas bo obvestilo, da se pomaknete http://localhost:3000na konfiguracijo Wiki.js. Če imate Nginx pred Wiki.js, lahko odprete ime svoje domene (npr. http://wiki.example.com) namesto da greste na localhost.

S spletnim brskalnikom se pomaknite do http://wiki.example.comin sledite navodilom na zaslonu. Vse nastavitve, ki so bile vnesene med čarovnikom za konfiguracijo, so bile shranjene v config.ymldatoteki. Čarovnik za konfiguracijo bo samodejno zagnal Wiki.js namesto vas.

Nastavitev PM2

Wiki.js se privzeto ne zažene samodejno po ponovnem zagonu sistema. Da bi se zagnal ob zagonu, moramo nastaviti upravljalnik procesov PM2.

Povejte PM2, naj se konfigurira kot zagonska storitev.

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 startup

Končno shranite trenutno konfiguracijo PM2 tako, da zaženete ukaz.

/var/www/wiki.example.com/node_modules/pm2/bin/pm2 save

Vaš primerek Wiki.js teče kot proces v ozadju, pri čemer uporablja PM2 kot upravitelja procesov. Svoj OS lahko znova sudo rebootzaženete z in zagotovite, da se Wiki.js zažene po ponovnem zagonu.


Namestite Plesk na CentOS 7

Namestite Plesk na CentOS 7

Uporaba drugega sistema? Plesk je lastniška nadzorna plošča spletnega gostitelja, ki uporabnikom omogoča upravljanje svojih osebnih in/ali strank spletnih mest, baz podatkov

Kako namestiti Squid Proxy na CentOS

Kako namestiti Squid Proxy na CentOS

Squid je priljubljen brezplačen program za Linux, ki vam omogoča ustvarjanje spletnega proxyja za posredovanje. V tem priročniku boste videli, kako namestiti Squid na CentOS, da vas obrne

Kako namestiti Lighttpd (LLMP Stack) na CentOS 6

Kako namestiti Lighttpd (LLMP Stack) na CentOS 6

Uvod Lighttpd je razdelek Apache, katerega namen je biti veliko manj intenziven vir. Je lahek, od tod tudi njegovo ime, in je precej preprost za uporabo. Namestite

Konfiguriranje statičnega omrežja in IPv6 na CentOS 7

Konfiguriranje statičnega omrežja in IPv6 na CentOS 7

VULTR je pred kratkim naredil spremembe na svoji strani in zdaj bi moralo vse delovati v redu iz škatle z omogočenim NetworkManagerjem. Če želite onemogočiti

Spreminjanje Icinga2 za uporabo modela Master/Client na CentOS 6 ali CentOS 7

Spreminjanje Icinga2 za uporabo modela Master/Client na CentOS 6 ali CentOS 7

Icinga2 je zmogljiv sistem za spremljanje in če se uporablja v modelu glavni-odjemalec, lahko nadomesti potrebo po nadzornih pregledih, ki temeljijo na NRPE. Glavni naročnik

Kako namestiti Apache Cassandra 3.11.x na CentOS 7

Kako namestiti Apache Cassandra 3.11.x na CentOS 7

Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko

Kako namestiti Microweber na CentOS 7

Kako namestiti Microweber na CentOS 7

Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal

Kako namestiti Mattermost 4.1 na CentOS 7

Kako namestiti Mattermost 4.1 na CentOS 7

Uporaba drugega sistema? Mattermost je odprtokodna alternativa sporočilni storitvi Slack SAAS, ki jo gosti sami. Z drugimi besedami, z Mattermostom si pribl

Ustvarjanje omrežja strežnikov Minecraft z BungeeCord na Debian 8, Debian 9 ali CentOS 7

Ustvarjanje omrežja strežnikov Minecraft z BungeeCord na Debian 8, Debian 9 ali CentOS 7

Kaj potrebujete Vultr VPS z vsaj 1 GB RAM-a. SSH dostop (z root/administrativnimi pravicami). 1. korak: Namestitev BungeeCord Najprej najprej

Omogočamo šifriranje na Plesku

Omogočamo šifriranje na Plesku

Nadzorna plošča Plesk ima zelo lepo integracijo za Lets Encrypt. Lets Encrypt je eden edinih ponudnikov SSL, ki izdaja potrdila v celoti

Namestite MariaDB 10 na CentOS 6

Namestite MariaDB 10 na CentOS 6

V času pisanja je MariaDB 10.1 razvojna različica MariaDB. Temelji na MariaDB 5.5 in vključuje funkcije, prenesene nazaj iz MySQL 5.6. Ther

Omogoča šifriranje na cPanelu

Omogoča šifriranje na cPanelu

Lets Encrypt je certifikacijski organ, ki je namenjen brezplačnemu zagotavljanju certifikatov SSL. cPanel je zgradil lepo integracijo za vas in vašo stranko

Kako namestiti Concrete5 na CentOS 7

Kako namestiti Concrete5 na CentOS 7

Uporaba drugega sistema? Concrete5 je odprtokodni CMS, ki ponuja številne značilne in uporabne funkcije za pomoč urednikom pri preprosti izdelavi vsebine.

Kako namestiti pregledno ploščo na CentOS 7

Kako namestiti pregledno ploščo na CentOS 7

Uporaba drugega sistema? Review Board je brezplačno in odprtokodno orodje za pregledovanje izvorne kode, dokumentacije, slik in še veliko več. Gre za spletno programsko opremo

Nastavite preverjanje pristnosti HTTP z Nginxom na CentOS 7

Nastavite preverjanje pristnosti HTTP z Nginxom na CentOS 7

V tem priročniku se boste naučili, kako nastaviti preverjanje pristnosti HTTP za spletni strežnik Nginx, ki deluje na CentOS 7. Zahteve Za začetek boste potrebovali

Kako namestiti YOURLS na CentOS 7

Kako namestiti YOURLS na CentOS 7

YOURLS (Your Own URL Shortener) je odprtokodna aplikacija za krajšanje URL-jev in analitiko podatkov. V tem članku bomo obravnavali postopek namestitve

Kako namestiti in konfigurirati ArangoDB na CentOS 7

Kako namestiti in konfigurirati ArangoDB na CentOS 7

Uporaba drugega sistema? Uvod ArangoDB je odprtokodna baza podatkov NoSQL s prilagodljivim podatkovnim modelom za dokumente, grafe in ključe-vrednosti. je

Uporaba Etckeeperja za nadzor različic /etc

Uporaba Etckeeperja za nadzor različic /etc

Uvod Imenik /etc/ igra ključno vlogo pri delovanju sistema Linux. Razlog za to je skoraj vsaka sistemska konfiguracija

Zakaj bi morali uporabljati SSHFS? Kako namestiti oddaljeni datotečni sistem s SSHFS na CentOS 6

Zakaj bi morali uporabljati SSHFS? Kako namestiti oddaljeni datotečni sistem s SSHFS na CentOS 6

Številni sistemski skrbniki upravljajo velike količine strežnikov. Ko je treba do datotek dostopati prek različnih strežnikov, se prijavite v vsakega posebej ca

Nastavitev strežnika Half Life 2 na CentOS 6

Nastavitev strežnika Half Life 2 na CentOS 6

Ta vadnica bo obravnavala postopek namestitve igralnega strežnika Half Life 2 na sistem CentOS 6. 1. korak: Namestitev predpogojev Za nastavitev ou

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več