Web Dirbtuvės

Web Dirbtuvės

VPS serveris ir jo pritaikymas host’inti daug wordpress tinklapių

        Vienas pirmųjų iššūkių šviežiai pabaigusiam tinklapių programavimo kursus žmogui dažnai būna tinklapio įkėlimas į internetą. Čia yra keli keliai. Jei norime visko paprastai ir greitai (bet ne būtinai geriausiai), galime rinktis vieną iš daugelio siūlomų hostingo planų. Jei norime kurti tik wordpress tinklapius galbūt to ir užtenka, viskas jau padaryta, telieka įkelti tinklapį per vartotojo sąsają į serverį. Tačiau norint į internetą kelti sudėtingesnius tinklapius, programuoti sistemas arba ištikus problemoms, grafinė sąsaja nėra tinkama įgyvendinti norimus patobulinimus ar ištaisyti klaidas, todėl verta mokėti naudotis VPS serveriu ir pačiam nuo pagrindų “užkurti” serverį.

Viskas prasideda nuo to, jog reikia nusipirkti VPS serverio paslaugą ir norimą domeną. O tuomet – įdomioji dalis. 🙂

Pirmas darbas kurį reikia atlikti jei paskui nenorite ilgai svarstyti kodėl tinklapis neveikia, arba veikia neprognozuojamai – tai nueiti pas domeną pardavusį tiekėją ir sutvarkyti, kad iš tinklapis1.lt automatiškai peradresuotų į www.tinklapis1.lt . Toks peradresavimas labiau patinka google. Taip pat būtina nustatyti savo serverio ip adresą, kad šis būtų surištas su jūsų domenu. Tai padarius reiks palaukti, kol visi pakitimai “suvaikščios” į DNS serverius.

Prisijungti ir valdyti serverį galima naudojant senąjį gerąjį komandinės eilutės terminalą, tačiau ypač pradedantiesiems labai padeda grafinė WinSCP programa. Joje vizualiai galima pamatyti tai ką darau per komandinę eilutę ir padeda nepasimesti tarp failų ir aplankų galybės.

Vos gavus prieigą prie savo serverio geroji praktika yra pakeisti serverio ssh (secure shell socket) prisijungimo portalą iš 22 į savo sugalvotą, bei nustatyti, kad prie serverio per ssh sąsają būtų galima jungtis tik iš tam tikrų IP adresų. Tai nukreipia kenkėjiškų programų bei automatinių botų dėmesį nuo serverio.

O toliau jau galima sukonfigūruoti savo serverį taip, kad jame būtų galima talpinti keletą skirtingų tinklapių.

Prisijungimas  prie savo serverio per komandinę eilutę:

ssh root@serverio_ip_adresas -p portalo_numeris

Sukuriame aplankus savo tinklapiams:

sudo mkdir -p /var/www/tinklapis1
sudo mkdir -p /var/www/tinklapis2

Norint paleisti kelis tinklapius užtenka įdiegti vieną http NGINX serverį, bet šį reikia tinkamai sukonfigūruoti. Norint susieti tinklapius su http serveriu, tai galima padaryti šiame aplanke: /etc/nginx/sites-available. Čia reika sukurti naują failą kuriame konfigūruosime kaip turi veikti mūsų tinklapis. Kitiems tinklapiams toje pačioje direktorijoje taip pat reikia kurti nuosavus failus.

Čia matome tinklapis1.lt konfigūracinį failą:

server {
    root /var/www/tinklapis1.lt/wordpress/;
    index index.php;
server_name tinklapis1.lt www.tinklapis1.lt;
location / {
   try_files $uri $uri/ /index.php?$args; }
    location ~ \.php$ {
  include snippets/fastcgi-php.conf;
  fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }    location ~ /\.ht{  
deny all;  } 

Parašius konfigūraciją, reikia  sukurti simbolinę nuorodą į konfigūracinį failą, kad http serverio konfigūracija būtų aktyvuota. Iš to seka, kad sites-available ir sites-enabled talpins tą patį konfigūracinį dokumentą ir jie abu kis ką nors keičiant sites-available konfigūracijos faile.

sudo ln -s /etc/nginx/sites-available/tinklapio_1_configfailas /etc/nginx/sites-enabled

Toliau reikia įdiegti PHP. Jis taip pat gali būti vienas visiems tinklapiams.

Taip pat wordpress tinklapiams reikalinga duomenų bazės sistema. Ji taip pat gali būti viena visiems tinklapiams, tik kiekvienam tinkalpiui reikia išskirti atskiras duomenų bazes. Šiuo atveju naudojame MariaDB duomenų bazės sistemą. Ją įdiegus reikia sukurti duomenų bazes kiekvienam tinklapiui atskirai.

Čia matome duomenų bazės konfigūraciją tinklapis1.lt. Atitinkamai tą pačią procedūrą reikia kartoti norint sukurti duomenų bazes ir vartotojus kitiems tinklapiams.

CREATE DATABASE, dbpavadinimas;
CREATE USER ‘vartotojovardas’@’localhost’ IDENTIFIED BY ‘slaptazodis’;
GRANT ALL PRIVILEGES ON dbpavadinimas.* TO ‘vartotojovardas’@’localhost’;

FLUSH PRIVILEGES;
EXIT;

Tuomet jau (pagaliau) galima įdiegti patį wordpress. Jį instaliuojame jau sukurtame /var/www/tinklapis1.lt aplanke. Atsisiuntus reikia išrchyvuoti ir pervadinti wp-config-sample.php failą į wp-config.php. Šio failo viduje reikia surašyti to tinklapio  MariaDB duomenis: vartotojo vardą, duomenų bazės pavadinimą, slaptažodį ir host’ą. Tai reikalinga, kad wordpresso php programa galėtų pasiekti savo duomenų bazę ir ją naudoti : kurti naujus įrašus, redaguoti, trinti ir t.t.

Kitas svarbus saugumo žingsnis – sukurti atskirus vartotojus vps serveryje ir kiekvienam vartotojui priskirti teises pasiekti tik savo tinklapius. Tai izoliuoja tinklapius, padidina saugumą užkrėtimo ar įsilaužimo atveju..

Sukūrus vps serverio vartotoją nustatome kas galės pasiekti wordpress’ą:

sudo chown -R vartotojopavadinimas:www-data /var/www/tinklapis1.lt

Štai ir viskas. Dabar galima prisijungti prie tinklapio per naršyklę.

Norint paleisti paprastą HTML failą viskas dar paprasčiau – užtenka tik sukonfigūruoti nginx serverį ir sukurti html failą  /var/www/tinklapis1 direktorijoje.

 Iš pradžių viskas atrodo labai komplikuota, tačiau kelis kartus viską pakartojus tikrai pasidaro aišku. Šis serverio valdymo būdas yra pilnai rankinis, bet įprastai žmonės naudoja paruoštas serverio valdymo grafines sistemas (pvz. DirectAdmin) su kuriomis pasiekia panašų rezultatą.  Taip pat yra debesų technologijos (pvz.: Docker) kuriomis irgi pasiekiamas panašus rezultatas, bet gerokai padidinama izoliacija tarp tinklapių.

Išmokti valdyti serverį, tinklapius ir duomenų bazes per komandinę eilutę yra labai naudinga, nes galime įsigilinti į bazinius serverio darbo principus, nemažai sužinome apie gnu/linux failų sistemą.

Sėkmingo sistemų administravimo! 🙂

Call Now Button