Ghost blogi ja Node.js Zone virtuaalserveris
Antud blogipostitus on 89 kuud vana ning ei pruugi olla enam ajakohane.
Hiljuti lisandus Zone virtuaalserveri pakettides võimalus kasutada lisaks PHP-veebirakendustele ka Node.js-rakendusi
Käesolevas näites paigaldame Zone virtuaalserverisse populaarse Ghost blogimootori, mis on eelkõige tuntud oma lihtsuse ja viisaka välimuse poolest. Kui niiöelda suured blogimootorid, näiteks WordPress, võimaldavad teha kõikvõimalikke veebilehti visiitkaartidest kuni suurte e-poodideni, siis Ghost võimaldab teha vaid üht ehk siis kõige tavalisemat blogi.
Vaikimisi kasutab Ghost andmebaasina SQLite manus-andmebaasi, kuid toetatud on ka MySQL, mida proovimegi kasutada SQLite asemel. SQLite on väga mugav katsetusteks, selle tarbeks ei ole vaja paigaldada väliseid teenuseid, kuid tunduvalt ebamugavam on see haldamise mõttes, kuna sellele ei pääse “väljastpoolt” kuidagi ligi. Samuti võib tekkida probleeme Node.js versiooni uuendamisel, kuna SQLite draiver tuleb iga Node.js versiooni jaoks eraldi kompileerida. Zone virtuaalserveri pakketides on mugav MySQL tugi samas juba olemas ja seega on seda isegi lihtsam kasutusele võtta.
Alamdomeeni loomine
Esimese sammuna loome Zone haldusliideses uue alamdomeeni, millel hakkab meie Ghost blogi tööle.
Alamdomeeni jaoks valime kõigepealt sobiva domeeninime, siin näites on selleks ghost.tahvel.info, ja seejärel määrame mod_proxy sihtpordi. Vajalik on sihtpordi määramine seetõttu, et Node.js rakendusi ei käivitata erinevalt PHP rakendustest läbi Apache, vaid siinkohal töötab Apache veebiserver hoopis veebiproksina – päringud tulevad sisse ja kui need on suunatud kindlale alamdomeenile, siis Apache suunab need lihtsalt edasi järgmisele serverile, mis juhtub kuulama mod_proxy seadetes määratud pordil. Ghost kasutab vaikimisi pordina 2368 ja selle numbri valimegi.
Kausta väärtus ei ole siinkohal üldse oluline, kuna Apache nende failide poole ei pöördu. Seame selleks siin näites ghost, kuid reaalselt pole sellel väärtusel erilist vahet.
Koodifailide laadimine
Kui alamdomeen on olemas, tuleks saada Ghost koodifailid kuidagi meie virtuaalserverisse. Üheks võimaluseks on külastada Ghost allalaadimiste lehte ja vajalikud failid sealt zip-failina alla laadida. Seejärel tuleks need failid kas FTP või SSH abil virtuaalserverisse toimetada.
Teine võimalus on laadida koodifailid wget käsu abil otse serverist. Seega tuleks meil logida SSH abil serverisse. Kuidas seda täpselt teha, saab lugeda siit.
Kui ühel hetkel juba serveris sees oleme, saab vajalikud failid alla laetud ja paigaldatud järgmiste käskude abil:
$ cd ~ $ wget https://ghost.org/zip/ghost-0.11.0.zip $ unzip ghost-0.11.0.zip -d ghost $ cd ghost
Sellega tekitasime oma kodukataloogi uue kausta ./ghost, milles asuvadki kõik Ghost koodifailid.
Paigaldame kohe ka kõik vajalikud alammoodulid, mida Ghost oma töö jaoks vajab. Vaikimisi ei taha Ghost Node.js versiooniga 6 ja uuemad töötada, eelkõige probleemide tõttu SQLite andmebaasiga, aga kuna meie seda ei kasuta, siis ei pea me ka muretsema. Ütleme lisaparameetriga, et Ghost ei kontrolliks Node.js versiooni.
$ GHOST_NODE_VERSION_CHECK=false npm install --production
Andmebaasi loomine
Edasi tuleks meil hakata rakenduse konfiguratsioonifaili looma, kuid see eeldab MySQL andmebaasi ja -kasutaja olemasolu. Pöördumegi selle jaoks tagasi Zone haldusliidesesse ja avame sektsiooni Andmebaasid ja sealt MySQL.
Esiteks tuleks meil luua uus andmebaas. Valime baasile sobiva nime ja lisame selle.
Kui baas on loodud, saame lisada ka andmebaasi kasutaja.
Ja kui ka kasutaja on loodud, saame samal lehel määrata uuele kasutajale vajalikud õigused Ghost andmebaasiga toimetamiseks. Kõige lihtsam on lihtsalt klikata nupul “vali kõik,” kuid reaalselt ei lähe nimekirja lõpus olevad linnukesi siiski vaja.
Ghost blogi seadistamine
Nüüd saame jälle minna SSH juurde tagasi ja lisame ./ghost kausta uue konfiguratsioonifaili. Üks võimalus on nimetada fail config.example.js ümber failiks config.js ja muuta selle sisu. Kuid võib selle faili ka täiesti ise teha. Konfiguratsioonifaili sisu peaks välja nägema järgmine (asenda url ning MySQL seadistuse väärtused).
var path = require('path'), config; config = { production: { url: 'http://ghost.tahvel.info', mail: { transport: 'SMTP' }, database: { client: 'mysql', connection: { host : 'd12345.mysql.zone.ee', user : 'd12345_ghost', password : 'Ghostpass123', database : 'd12345_ghost', charset : 'utf8' } }, server: { host: '127.0.0.1', port: '2368' } } }; module.exports = config;
Väärtus config.production.url hakkab olema meie blogi veebiaadress, mida kasutatakse linkide juures.
Meiliseadistuseks config.production.mail piisab vaid vajaliku transpordimehhanismi valikust, kuna Zone virtuaalserveritest saab kirju saata standardpordi kaudu ilma autentimata.
Serveri seadistus config.production.server ütleb, et meie rakendus hakkab kuulama pordil 2368 ehk sellelsamal, kuhu hakkab edaspidi Apache päringuid suunama.
Rakenduse töö seadistamine
Nüüdseks peaks meil olemas olema nii rakenduse failid, toimiv andmebaas ja rakendus olema ka korrektselt seadistatud, kuid erinevalt PHP rakendustest tuleb Node.js rakendused eraldi käima tõmmata, kuna tegu on nn. deemon tüüpi rakendustega. Zone virtuaalserverites saab selleks kasutada PM2 nimelist haldustööriista ja tekitamegi selle jaoks vastava konfiguratsioonifaili.
Konfiguratsioonifail ghost.json, mis ütleb PM2 rakenduste haldurile kuidas meie Ghost blogi jooksutada, võiks asuda meie kodukataloogis ehk seal kuhu satume, kui ssh’ga sisse logime. Faili sisu peaks välja nägema järgmine:
{ "apps": [{ "name": "ghost", "script": "./ghost/index.js", "cwd": "./ghost", "watch": true, "env": { "NODE_ENV": "production", "GHOST_NODE_VERSION_CHECK": "false" } }] }
Rakenduse paigaldamine Zone haldusliideses
Nüüd peaks meil olema kõik eeldused olemas, et rakendus lõpuks ometi käivitada. Selle tarbeks avame Zone haldusliideses sektsiooni Veebiserver ja sealt alt Node.js ja PM2. Avanenud leheküljel saame lisada uue Node.js rakenduse ja rakenduse aknas tuleks meil esiteks määrata rakenduse nimi, milleks võib olla suvaline endale sobiv nimi. Seejärel tuleks öelda, et kust leiab PM2 rakenduse tööks vajaliku konfiguratsioonifaili ghost.json, mille tekitasime eelmises punktis oma kodukataloogi ja viimasena valida, et kui palju mälu me rakendusele eraldame.
Peale lisa nupul klikkimist tuleb veidi oodata, lehekülge värskendades peaksime nägema, et teade “käivitamisel” muutub ühel hetkel “käivitatud”. Nüüd polegi enam muud, kui avada Ghost blogi aadress.
Blogi seadistamine
Kui näed blogi aadressil järgmist pilti, siis oled kõik õigesti teinud. Blogi töötab ja on kasutusvalmis.
Muidugi on meil vaja ka kasutajakontot ja esimese, niiöelda admin konto saab luua, kui minna aadressile domeeninimi/ghost.
Ja kui konto juba loodud, siis polegi muud, kui postitusi kirjutama!