Taip jau atsitiko, kad Vilius, kuris rūpinasi mūsų serverio (gildija.lt) administravimu išvyko mėnesiui į šiltus kraštus ir paliko mane vieną grybauti po linuxinio serverio vandenis. Problemos iškilo tada, kai prireikė sukurti porą subdomeinų ant servo. Ačiū geriems draugams per porą dienų, jas pavyko išspręsti.
Ta proga, kad Žilvinas paprašė, kad jam papasakočiau, kaip man tai pavyko, surašiau savo pastabas į straipsnelį.
Nepretenduoju čia į kokią rimtą dokumentaciją. Tiesiog vieno žalio Linux vartotojo patarimai kitiems žaliems. Tam, kad susigaudytumėte šiame straipsnelyje jums reikia mokėti naudotis Linux konsole (shell’u), nardyti po direktorijas, redaguoti failus, mokėti prisijungti root vartotoju ir turėti įsivaizdavimą kur ir kas padėta jūsų serveryje. Dirbau ant jau suinstaliuotos ir sukonfigūruotos sistemos, taigi nerašau apie Apache ir DNS serverio instaliavimą po Linux.
Apache konfigūravimas
1. Reikia susirasti ir paredaguoti Apache’s virtual hosts konfigūracijos failą. Jūsų sistemoje šio failo gali ir nebūti, o virtualių host’ų konfigūracija gail būti sutvarkyta tiesiai httpd.conf faile.
Mūsų serveryje virtual hosts konfigūracija iškelta į atskirą failą. Tokiu būdu turime pagrindinį Apache 2.0 web serverio konfigą:
/etc/httpd/conf/httpd2.conf
ir jame įrašytą direktyvą Include :
Include conf/vhosts/Vhosts.conf
2. Toliau redaguojame /etc/httpd/conf/vhosts/Vhosts.conf failą. Tam, kad veiktų virtual host’ai, šiame faile turi būti įrašyta direktyva NameVirtualHost (pakeiskite IP adresą savo serverio IP adresu):
NameVirtualHost 213.197.142.106
Pačio virtual host’o aprašymas tuomet atrodo maždaug taip:
# bugs.gildija.lt (By Emilis 2004-08-07)
<VirtualHost 213.197.142.106>
DocumentRoot /web/bugs/www
ServerName bugs.gildija.lt
ServerAdmin webmaster@gildija.lt
ErrorLog /web/bugs/log/bugs.gildija.lt-error_log
TransferLog /web/bugs/log/bugs.gildija.lt-access_log
php_admin_flag safe_mode off # sitos direktyvos veikia
php_admin_flag register_globals off # jei serveryje yra PHP
</VirtualHost>
(!) Neužmirškite IP adreso, direktorijų ir serverio pavadinimų pakeisti pagal savo turimą sistemą! Neužmirškite, kad failai DocumentRoot direktorijoje turės būti prieinami Apache serverio skaitymui, o ErrorLog ir TransferLog failai – rašymui.
3. Po to kai sukonfigūravome virtualų serverį, reikia perkrauti Apache web serverio procesą. Tam pravers komanda apachectl . Tam, kad naudoti šią komandą reikia būti prisijungus root vartotojo teisėmis (tikiuosi, kaip šitą atlikti žinote patys). Pirma iš konsolės patikriname ar teisingai viską sukonfigūravome:
root{gildija.lt}# apachectl configtest
Checking configuration sanity for Apache 2.0: [ OK ]
Paskiau perkrauname Apache:
root{gildija.lt}# apachectl restart
Shutting down httpd2: [ OK ]
Starting httpd2: [ OK ]
Jei pavyko be klaidų, tai prie Apache konfigūravimo jau neteks grįžti. Bet tai dar ne viskas. Mes kolkas tik sukonfigūravome, kad Apache web serveris žinotų kurioje direktorijoje randasi bugs.gildija.lt domeno failai. Visas smagumas man prasidėjo tuomet, kai atsidaręs savo naršyklėje “bugs.gildija.lt” gavau pranešimą, kad tokio serverio naršyklė neranda. Suprantama, buvau per daug naivus tikėdamasis, kad Apache perkonfigūravimo užteks subdomeinui pakurti :-) .
DNS konfigūravimas
4. Tam, kad jūsų subdomeiną atrastų jūsų naršyklė, reikia, kad jis būtų užregistruotas DNS serveriuose. Tai galima patikrinti pasinaudojus Windows komanda nslookup arba linux programėlėmis nslookup , dig arba host .
Taigi, patikriname savo subdomeiną:
C:\windows> nslookup bugs.gildija.lt
Server: ns1.telecom.lt
Address: 212.59.0.1
*** ns1.telecom.lt can't find bugs.gildija.lt: Non-existent domain
arba:
root{gildija.lt}# host bugs.gildija.lt
Host bugs.gildija.lt not found: 3(NXDOMAIN)
Kaip matome naujo subdomeno neranda nei mūsų namų kompiuteris, nei pats serveris ant kurio subdomenas turi veikti.
Tam, kad naujas subdomenas būtų randamas, reikia sukonfigūruoti DNS serverio programą pirminiame mūsų domeno vardų serveryje . Pirminį vardų serverį galime sužinoti Lietuvos domenų registratoriaus DomReg tinklapyje, pasinaudoję adresų informacijos keitimo forma. Mano (gildija.lt) atveju yra nurodytas pirminio vardų serverio adresas playdoll.admin.lt, kuris fiziškai yra tas pats gildija.lt serveris. Tai reiškia, kad DNS serverio programą man teko konfigūruoti tame pačiame serveryje.
(!) Jei jūsų domeno pirminį vardų serverį administruoja kažkas kitas, tai toliau galite neskaityti, o eiti rašyti laiško to serverio administratoriui. Jei jūs patys administruojate savo domeno pirminį vardų serverį, tai važiuojam toliau.
5. Mūsų serveryje (gildija.lt) yra suinstaliuotas BIND DNS serveris vardu named . Kiek supratau naršydamas internete, tai gana paplitęs Linux DNS serveris.
Šio serverio konfiguraciniai failai (kad būtų smagiau) guli mūsų serverio /var/named direktorijoje (o aš tikėjausi juos rasti /etc/ direktorijoje, kaip ir visus kitus konfigus, ech : | ). Pagrindinis konfigūracijos failas mūsų serveriui (gildija.lt) šiuo atveju taip ir vadinasi: “gildija.lt”. |
Šiame faile gana greitai pastebėjau subdomenų konfigūraciją:
...
vilius IN CNAME www
emilis IN CNAME www
zilvinas IN CNAME www
Po šiais įrašais pridėjau naują įrašą:
bugs IN CNAME www
išsaugojau failą ir perkroviau named serverį:
root{gildija.lt}# /etc/rc.d/init.d/named restart
Stopping named: [ OK ]
Starting named: [ OK ]
(!) Atkreipkit dėmesį į pilną kelią – jis skiriasi nuo named programos kelio, nes šiuo atveju mes paleidžiame skriptą, kuris paleidžiamas kompiuterio startavimo metu.
6. Dabar patestuokime kas iš to išėjo:
C:\WINDOWS> nslookup bugs.gildija.lt
Server: ns1.telecom.lt
Address: 212.59.0.1
*** ns1.telecom.lt can't find bugs.gildija.lt: Non-existent domain
ir:
root{gildija.lt}# host bugs.gildija.lt
bugs.gildija.lt is an alias for www.gildija.lt
www.gildija.lt has address 213.197.142.106
Kaip matome mūsų web serveris jau atpažįsta subdomeną bugs.gildija.lt, bet Telekomo DNS serveriams jis dar neįkandamas. Jei esate šiek tiek susidūrę su DNS serverių darbu, galite pamanyti, kad Telekomo serveriai tiesiog dar nespėjo surasti naujojo subdomeno. Aš irgi iš pradžių taip maniau, laukiau valandą, kelias, pusę paros.. Galų gale draugas padėjo surasti kur bėda. O ji slepiasi named konfiguracinio failo gildija.lt viršuje, į kurį aš iš pradžių visai neatkreipiau dėmesio.
Viršuje konfiguracinio failo yra gana keistų parametrų rinkinys, prie kurio tikrai nesinori kišti nagų, kai gerai neišmanai:
@ IN SOA playdoll.admin.lt. info.gildija.lt. (
2004072701 ; serial
1H ; refresh
15M ; retry
14D ; expire
12H ; default_ttl
)
...
Vienintelis parametras, kurį mums reikės pakeisti, tai dešimties skaičių eilutė: 2004072701 . Geriau į ją įsižiūrėjus galima suprasti, iš ko ji susideda: iš datos ( 20040727 – 2004 metų 07 mėnesio 27 diena) ir eilės numerio ( 01 ). Pakeičiame šią eilutę, taip, kad ji atitiktų šios dienos datą ir šios dienos konfiguracinio failo atnaujinimo numerį: 2004080801 .
Dabar vėl perkrauname named serverį (žr. aukščiau). Po perkrovimo man nereikėjo laukti nė vienos minutės ir naujas subdomenas iškart tapo pasiekiamas iš nutolusio kompiuterio:
C:\WINDOWS> nslookup bugs.gildija.lt
Server: ns1.telecom.lt
Address: 212.59.0.1
Non-authoritative answer:
Name: www.gildija.lt
Address: 213.197.142.106
Aliases: bugs.gildija.lt
Atsidariau naująjį adresą savo naršyklėje, pamačiau tai ką tikėjausi išvysti (testinį puslapį, kurį pats buvau sukūręs :] ) ir galėjau eiti kurti svetainės.
Suma sumarum
Tikiuosi kam nors bus naudinga tai, ką čia surašiau. Šiuo straipsneliu nepretenduoju į rimtą dokumentaciją. Rašiau paskubomis, jei kam užklius rašybos, skyrybos, stiliaus ar logikos klaidos, prašau apie jas pranešti (emilis.d@gmail.com). Nesu tikras dėl terminų, kuriuos naudojau šiame straipsnyje. Jei jus “pjauna” mano vartojami anglicizmai, būsiu dėkingas, jei pasiūlysite lietuviškus atitikmenis.
Linux guru ir hacker’ių prašau pažiūrėti į straipsnio turinį atlaidžiai. Jei radote klaidų (ypač dėl netikslumų susijusių su tuo, kaip iš tikro veikia serveriai Linux aplinkoje) – parašykite komentaruose. Jei nuspręsite parašyti teisingą straipsnelį šia tema, leidžiu panaudoti bet kurią šio straipsnio teksto dalį pagal Creative Commons Attribution-NonCommercial-ShareAlike 2.0 licenciją.
Komentarai
Xawiers
Komentuoti šio įrašo nebegalima. Komentarų sistema išjungta.