Ինչպես տեղադրել Wiki.js-ը Apache2 հակադարձ պրոքսիով Ubuntu 22.04-ում
Այս էջում
- Նախադրյալներ
- Node.js-ի տեղադրում
- PostgreSQL տվյալների բազայի տեղադրում
- Wiki.js-ի տեղադրում
- Apache2-ի կարգավորումը որպես հակադարձ վստահված անձի
- Wiki.js-ի տեղադրման կարգավորում
- Եզրակացություն
Wiki.js-ը անվճար և բաց կոդով վիքի ծրագիր է՝ հիմնված Node.js-ի, Git-ի և Markdown-ի վրա։ Այն թողարկվել է AGPL-v3 լիցենզիայի ներքո և նախատեսված է աշխատանքի և պահպանման համակարգի ռեսուրսների համար: Wiki.js-ը հզոր Wiki ծրագիր է, որը կարող է տեղադրվել ձեր համակարգի ցանկացած վայրում. դուք կարող եք տեղադրել այն ձեր օպերացիոն համակարգում կամ օգտագործելով ամպային ծառայություններ, ինչպիսիք են Heroku-ն, ինչպես նաև տեղադրել Wiki.js-ը ձեր կոնտեյներային միջավայրերում, ինչպիսիք են Docker-ը և Kubernetes-ը:
Wiki.js-ը համատեղելի է PostgreSQL տվյալների բազայի հետ և տրամադրում է 50+ ինտեգրում լրացուցիչ իսկորոշման, գրանցման համակարգերի, որոնման համակարգերի, մատուցման և պահպանման համար: Այն հզոր Wiki ծրագրակազմ է, որը կառուցված է վարչարարության վահանակի և էջերի համար նախատեսված գեղեցիկ և ինտուիտիվ ինտերֆեյսերի վրա: դա լիովին կարգավորելի վիքի ծրագրակազմ է՝ ձեր տեխնոլոգիական բուրգը փաստաթղթավորելու համար:
Այս ուղեցույցում դուք կտեղադրեք և կարգավորեք Wiki.js-ը Ubuntu 22.04 սերվերի վրա՝ օգտագործելով PostgreSQL-ը որպես լռելյայն տվյալների բազա և Apache2-ը՝ որպես հակադարձ պրոքսի: Բացի այդ, դուք կունենաք ապահով HTTPS/SSL կապ ձեր Wiki.js տեղադրման ժամանակ: Երբ ավարտեք, դուք կունենաք լիովին ֆունկցիոնալ և ապահովված Wiki.js ձեր Ubuntu համակարգում:
Նախադրյալներ
Այս ուղեցույցը լրացնելու համար նախ ձեզ հարկավոր են հետևյալ պահանջները.
- Ubuntu 22.04 սերվեր:
- Ոչ արմատային օգտվող, որն ունի արմատային/ադմինիստրատորի արտոնություններ:
- Դոմենի անուն, որը մատնանշված է ձեր Ubuntu սերվերի IP հասցեին:
Node.js-ի տեղադրում
Wiki.js-ը տեղադրելուց առաջ դուք պետք է տեղադրեք Wiki.js-ի պահանջվող կախվածությունները:
Wiki.js-ը վիքի ծրագիր է, որը հիմնականում գրված է JavaScript-ով, որպեսզի այս առաջին քայլում տեղադրեք JavaScript-ի գործարկման Node.js-ը: Ubuntu-ի լռելյայն պահոցը տրամադրում է Node.js փաթեթը, սակայն այս ուղեցույցի համար դուք կօգտագործեք Nodesource պահոցը՝ Node.js-ը տեղադրելու համար:
Գործարկեք ներքևի curl հրամանը՝ Nodesource-ի պահոցը ձեր Ubuntu համակարգին ավելացնելու համար: Այս գրելու պահին Wiki.js-ը պահանջում էր առնվազն Node.js v8 և ավելի բարձր: Եվ այս ուղեցույցի համար դուք կտեղադրեք Node.js v16-ի LTS տարբերակը:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
Այժմ դուք կարող եք տեղադրել Node.js փաթեթը՝ օգտագործելով ստորև նշված apt հրամանը:
sudo apt install nodejs
Տեղադրման ավարտից հետո ստուգեք և հաստատեք Node.js տարբերակը՝ օգտագործելով հետևյալ հրամանը։ Դուք պետք է տեսնեք Node.js v16 LTS տարբերակը ձեր տերմինալի էկրանին:
node --version
npm --version
PostgreSQL տվյալների բազայի տեղադրում
Լռելյայն WIki.js-ն աջակցում է բազմաթիվ RDBMS, ինչպիսիք են PostgreSQL, MySQL/MariaDB և SQLite (կանխադրված), սակայն արտադրության համար առաջարկվող տվյալների բազան PostgreSQL-ն է: Դուք կտեղադրեք PostgreSQL փաթեթը Ubuntu համակարգում, ապա կստեղծեք տվյալների բազան և օգտվողը Wiki.js-ի համար:
Սկսելու համար գործարկեք հետևյալ apt հրամանը՝ ձեր սերվերի վրա PostgreSQL տվյալների բազան տեղադրելու համար: Մուտքագրեք Y՝ տեղադրումը հաստատելու համար և սեղմեք ENTER՝ շարունակելու համար, և տեղադրումը կսկսվի:
sudo apt install postgresql postgresql-common
Երբ տեղադրումն ավարտված է, գործարկեք հետևյալ systemctl հրամանը՝ PostgreSQL ծառայությունը ստուգելու և հաստատելու համար: Եվ դուք պետք է տեսնեք, որ PostgreSQL ծառայությունը միացված է, ինչը նշանակում է, որ այն ավտոմատ կերպով կսկսվի համակարգի բեռնման ժամանակ: Իսկ PostgreSQL ծառայության ներկայիս կարգավիճակը «Ակտիվ» է։
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Մուտք գործեք PostgreSQL վահանակ՝ օգտագործելով ստորև նշված հրամանը՝ PostgreSQL տվյալների բազան և օգտվողը ստեղծելու համար:
sudo -u postgres psql
Գործարկեք հետևյալ հրամանը ձեր PostgreSQL վահանակից՝ Wiki.js-ի համար նոր տվյալների բազա և օգտվող ստեղծելու համար: Այս օրինակում մենք ստեղծում ենք տվյալների բազա «wikijs», իսկ օգտվողը «wiki»՝ «wikijspassword» գաղտնաբառով։
CREATE DATABASE wikijs;
CREATE USER wiki WITH ENCRYPTED PASSWORD 'wikijspassword';
GRANT ALL PRIVILEGES ON DATABASE wikijs TO wiki;
Այժմ դուք կարող եք օգտագործել «Ctrl+d»՝ PostgreSQL վահանակից դուրս գալու համար, կամ պարզապես օգտագործել «\q» հրամանը դուրս գալու համար:
Wiki.js-ի տեղադրում
Այժմ դուք ձեռքով կտեղադրեք Wiki.js-ը ձեր Ubuntu համակարգում: Այս ուղեցույցի միջոցով դուք կստեղծեք համակարգի օգտվող Wiki.js-ի համար, կներբեռնեք Wiki.js-ի սկզբնաղբյուրը, կստեղծեք Wiki.js-ը PostgreSQL տվյալների բազայի միջոցով և վերջապես կգործարկեք Wiki.js-ը որպես համակարգային ծառայություն:
Նախ, գործարկեք հետևյալ հրամանը՝ Wiki.js-ի համար նոր օգտվող ստեղծելու համար։ Այս օրինակում մենք ստեղծում ենք համակարգի նոր օգտվող՝ «wiki» անունով՝ լռելյայն տնային գրացուցակով «/opt/wikijs», և քանի որ սա համակարգի օգտվող է, մենք անջատում են կեղևի հասանելիությունը:
sudo useradd -r -d /opt/wikijs -s /usr/sbin/nologin wiki
Այժմ ներբեռնեք Wiki.js-ի աղբյուրի կոդը՝ օգտագործելով ստորև նշված wget հրամանը:
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
Երբ ներբեռնումն ավարտվի, ստեղծեք նոր գրացուցակ «/opt/wikijs» և դրա մեջ հանեք Wiki.js-ի սկզբնական կոդը: Դուք պետք է տեսնեք, որ Wiki.js-ի սկզբնական կոդը հասանելի է տեղադրման գրացուցակում "/opt/wikijs":
mkdir -p /opt/wikijs
tar xzf wiki-js.tar.gz -C /opt/wikijs
Wiki.js-ը PostgreSQL տվյալների բազայի հետ կարգավորելու համար դուք կպատճենեք «config.sample.yml» լռելյայն նմուշի կոնֆիգուրացիան և փոփոխեք/խմբագրեք այն՝ օգտագործելով ձեր տեքստային խմբագրիչը:
Գործարկեք հետևյալ հրամանը՝ օրինակ Wiki.js կազմաձևման ֆայլը «/opt/wikijs/config.yml»-ում պատճենելու համար: Այնուհետև խմբագրեք «/opt/wikijs/config.yml» նոր ֆայլը՝ օգտագործելով նանո խմբագրիչը:
cp /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
nano /opt/wikijs/config.yml
Փոխեք լռելյայն կոնֆիգուրացիան, ինչպես ստորև:
Այս օրինակում մենք կաշխատենք Wiki.js-ը լռելյայն TCP «3000» պորտի վրա: Համոզվեք, որ փոխեք PostgreSQL տվյալների բազայի անունը, օգտվողը և գաղտնաբառը: «bindIP» տարբերակի վրա փոխեք localhost կամ «127.0.0.1»: Wiki.js մատյան կազմաձևման համար մենք կօգտագործենք «info» լռելյայն մակարդակը՝ «json» ձևաչափով։
# default port wikijs will run
port: 3000
# PostgreSQL database details
db:
type: postgres
host: localhost
port: 5432
user: wiki
pass: wikijspassword
db: wikijs
ssl: false
# bind wikijs to localhost only
bindIP: 127.0.0.1
# setup log and the format
loglevel: info
logFormat: json
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Այժմ գործարկեք ստորև բերված chown հրամանը՝ Wiki.js տեղադրման գրացուցակի "/opt/wikijs" սեփականության իրավունքը փոխելու համար "wiki" օգտվողին:
sudo chown -R wiki:wiki /opt/wikijs
Այս օրինակում մենք կաշխատենք Wiki.js-ը որպես համակարգային ծառայություն: Այսպիսով, դուք պետք է ստեղծեք նոր systemd ծառայության ֆայլ Wiki.js-ի համար:
Գործարկեք հետևյալ հրամանը՝ նոր systemd ծառայության ֆայլ ստեղծելու համար "/etc/systemd/system/wikijs.service":
sudo nano /etc/systemd/system/wikijs.service
Ֆայլին ավելացրեք հետևյալ կոնֆիգուրացիան.
[Unit]
Description=Wiki.js
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs
[Install]
WantedBy=multi-user.target
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Այնուհետև գործարկեք հետևյալ հրամանը՝ համակարգի կառավարիչը վերաբեռնելու և «wikijs.service» ծառայության նոր ֆայլը կիրառելու համար։
sudo systemctl daemon-reload
Այժմ կարող եք սկսել և միացնել «wikijs» ծառայությունը՝ օգտագործելով հետևյալ հրամանը։
sudo systemctl start wikijs
sudo systemctl enable wikijs
Ի վերջո, ստուգեք և հաստատեք «wikijs» ծառայությունը՝ օգտագործելով հետևյալ հրամանը։ Այժմ դուք պետք է տեսնեք, որ «wikijs» ծառայությունն աշխատում է լռելյայն TCP «3000» պորտի վրա՝ PostgreSQL-ով որպես կանխադրված տվյալների բազա:
sudo systemctl status wikijs
Apache2-ի կարգավորումը որպես հակադարձ վստահված անձի
Այս օրինակում Wiki.js-ն այժմ աշխատում է «3000» TCP պորտում: Արտաքին ցանցերին կամ ինտերնետին ծանոթանալու համար ավելի լավ է Wiki.js-ի առջև կարգավորել հակադարձ պրոքսի և դրա վերևում կիրառել HTTPS/SSL՝ ցանկացած հավատարմագրերի և մուտք գործելու համար պաշտպանելու համար: Դուք նաև կօգտագործեք Apache2-ը որպես Wiki.js-ի հակադարձ պրոքսի:
Գործարկեք ստորև նշված apt հրամանը՝ Apache2 փաթեթը տեղադրելու համար: Տեղադրումը հաստատելու համար մուտքագրեք Y և շարունակելու համար սեղմեք ENTER, և տեղադրումը կսկսվի:
sudo apt install apache2
Տեղադրման ավարտից հետո գործարկեք «ufw» հրամանը՝ ձեր ubuntu համակարգի HTTP և HTTPS պորտերը բացելու համար: Այնուհետև ստուգեք UFW կանոնների ցանկը:
sudo ufw allow "Apache Full"
sudo ufw status
Հաջորդը, միացրեք որոշ Apache2 մոդուլներ՝ օգտագործելով հետևյալ հրամանը. Դուք կօգտագործեք այս մոդուլները Apache2 հակադարձ պրոքսի կարգավորելու համար:
sudo a2enmod proxy proxy_http ssl remoteip http2
Այժմ ստեղծեք «/etc/apache2/sites-available/wikijs.conf» նոր Apache2 vitual host-ի կոնֆիգուրացիա՝ օգտագործելով հետևյալ հրամանը։
sudo nano /etc/apache2/sites-available/wikijs.conf
Ֆայլին ավելացրեք հետևյալ կոնֆիգուրացիան. Այս օրինակում մենք կօգտագործենք «wiki.howtoforge.local» տիրույթը Wiki.js-ի տեղադրման և SSL վկայագրերը letsencrypt-ից: Համոզվեք, որ փոխեք SSL վկայագրերի տիրույթի անունը և ուղին:
<VirtualHost *:80>
ServerName wiki.howtoforge.local
# Comment to prevent HTTP to HTTPS redirect
Redirect permanent / https://wiki.howtoforge.local
ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName wiki.howtoforge.local
ProxyPreserveHost On
ProxyPass "/" "http://127.0.0.1:3000/"
ProxyPassReverse "/" "http://127.0.0.1:3000/"
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/wiki.howtoforge.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/wiki.howtoforge.local/privkey.pem
Protocols h2 http/1.1
# Enable only strong encryption ciphers and prefer versions with forwarding Secrecy
SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
SSLHonorCipherOrder on
# Disable insecure SSL and TLS versions
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
ErrorLog /var/log/apache2/wiki.howtoforge.local-error.log
CustomLog /var/log/apache2/wiki.howtoforge.local-access.log combined
</VirtualHost>
</IfModule>
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Այնուհետև ակտիվացրեք «wikijs.conf» վիրտուալ հոսթ ֆայլը՝ օգտագործելով հետևյալ հրամանը։
sudo a2ensite wikijs.conf
Ստուգեք և հաստատեք Aache2 կոնֆիգուրացիան՝ օգտագործելով հետևյալ հրամանը. եթե դուք ստանում եք ելքային հաղորդագրություն, ինչպիսին է «Սինտաքսը OK», դա նշանակում է, որ Apache2 կոնֆիգուրացիան պատրաստ է: Այնուհետև վերագործարկեք Apache2 ծառայությունը՝ նոր փոփոխություններ կիրառելու համար:
sudo apachectl configtest
sudo systemctl restart apache2
Wiki.js-ի տեղադրման կարգավորում
Բացեք ձեր վեբ զննարկիչը և այցելեք ձեր Wiki.js տեղադրման տիրույթի անունը (այսինքն՝ https://wiki.howtoforge.local/):
Մուտքագրեք նոր ադմինիստրատորի էլ.փոստը, գաղտնաբառը և կայքի URL-ը ձեր Wiki.js-ի տեղադրման համար: Այնուհետև կտտացրեք «ՏԵՂԱԴՐԵԼ» կոճակը՝ տեղադրումը սկսելու համար:
Տեղադրումն ավարտելուց հետո կտեսնեք Wiki.js-ի մուտքի էջը: մուտքագրեք ադմինիստրատորի էլ․ հասցեն և գաղտնաբառը և սեղմեք «Մուտք գործել»։
Դուք այժմ կտեսնեք ողջույնի հաղորդագրությունը Wiki.js-ից: Սեղմեք «ՍՏԵՂԾԵԼ ԳԼԽԱՎՈՐ ԷՋ» կոճակը՝ ձեր Wiki.js-ի համար կանխադրված ինդեքսային էջը կարգավորելու համար:
Ընտրեք խմբագրիչը, որը ցանկանում եք օգտագործել: Այս օրինակում մենք կօգտագործենք Markdown խմբագրիչը:
Մուտքագրեք վերնագիրը, նկարագրությունը և մյուսները: Այնուհետև սեղմեք «OK»:
Մուտքագրեք մանրամասների ինդեքսային էջը ձեր Wiki.js-ի համար և սեղմեք «ՍՏԵՂԾԵԼ»՝ հաստատելու համար:
Եվ դուք պետք է տեսնեք ձեր նոր ստեղծված Wiki.js-ի լռելյայն գլխավոր էջը:
Wiki.js-ի ադմինիստրատիվ վահանակ մուտք գործելու համար սեղմեք վերևի ձախ կողմում գտնվող հանդերձի կարգավորումների պատկերակը: Ստորև պետք է տեսնեք Wiki.js-ի կառավարման վահանակը:
Եզրակացություն
Այս ձեռնարկում դուք տեղադրել եք Wiki.js-ը PostgreSQL տվյալների բազայի և Apache2 հակադարձ պրոքսիի վերևում, որն աշխատում է վերջին Ubuntu սերվերի 22.04-ի վրա: Դուք նաև ապահովել եք ձեր Wiki.js-ը UFW firewall-ով և SSL/HTTPS-ով, որը միացված է Apache-ի հակադարձ պրոքսիի վրա: Ի վերջո, դուք նաև կարգավորել եք լռելյայն գլխավոր էջը կամ ինդեքսը ձեր Wiki.js-ի տեղադրման համար:
Դուք կարող եք լրացուցիչ բովանդակություն ստեղծել և կատեգորիաներ ստեղծել ձեր Վիքի նախագծի համար: Դուք կարող եք նաև որոշ մոդուլներ ավելացնել ձեր Wiki.js-ին՝ դրա ֆունկցիոնալությունը ընդլայնելու կամ Wiki.js-ի համար նոր թեմաներ ստեղծելու համար: