User:Tjaanus

From ICO wiki

Erialatutvustuse aine arvestustöö

Autor: Tauri Jaanus
Esitamise kuupäev: 05.11.2011

Essee

PHP veebi lehe paigaldamine IIS 6-le.

Kuna töö juures tekkis vajadus uue ja parema veebilehe järgi, siis oli minu kui administraatori tööks lahendada keskkonna seadistamine. Töö ise telliti veebiarendus firmalt. Läks kuu ja veidi rohkem aega mööda, kui veebi leht oli test keskkonnas valmis. Test keskkonnaks oli: PHP 5, MySQL 5 ja Apache. Minul serveris oli juba olemas IIS 6.0 ehk Microsoft Internet Information Services version 6.0 ning ei soovinud Apache serverit juurde panna, et oleks võimalik kõiki veebi lehti administreerida ühest keskkonnast.

Seega sain ülessandeks valmistada ette keskkond PHP5 ja MySQL5-ga. Esmalt alustasin sellest, et installeerisin PHPv5.3 exe versiooni ja ainus oluline asi siin juures on teekond, kuhu installeerid, sest sellest sõltub ka edasine seadistus. Minul läks see vaikimisi teekonnale, seega tekkis "PHP" kataloog "Program Files" alla. Nüüd tuli php kataloogis php.ini failis määrata ajavöönd, smtp serveri aadress ja "extension_dir" väärtus "php\ext" kataloogi teekond ning lisaks maha kommenteerida väärtused: "cgi.force_redirect = 0"; "fastcgi.impersonate = 1". Järgmiseks tuli php kataloogi teekond lisada ka süsteemi muutuja "PATH" väärtuseks.

Kuna IIS 6, ei suuda php scripte otse jooksutada, siis oli vaja selleks lisa mootorit. Valikutes oli CGI ja ATAPI mootorid, kuid kuna ATAPI mootorit enam IIS'i jaoks ei arendata, siis sai valitud FastCGI mootor. Selleks kasutasin exe versiooni ja installeerisin selle ära. Ka selle programmi installi kataloogis on cgiext.ini kuhu peab määrama: php kataloogis asuva php-cgi.exe faili teekond; maksimaalne lehe päringute arvu ja maksimaalse päringute arvu. Lisaks tuleb minna IIS manageerimis konsooli ja veenduda, et veebi lehtede laiendite all olev "FastCGI Handler" oleks lubatud. Nüüd siis veel veebi lehe atribuutides vaja määrata laiendi .php jooksutav "fcgiext.dll" ja limiteerida käskudele "GET,HEAD,POST". Lisada veel "index.php" dokumentide alla. Siin kohas on hea teha taaskäivitus IIS teenusele. Järele jäi testida kas veeb osakb php'd käivitada. See toimis.

Järgmiseks oli vaja installerida MySQL versioon 5. Seda tegin ka exe'ga. Installeerimisel on tähtis see kuhu installerid. Peale installi lõppu, minnakse seadistuste juurde. Seal valisin "Detailed configuration", edasi "Server Machine", edasi "Multifunctional Database", edasi teekond kuhu baasid pannakse, mis minul jäi vaikimisi, ja lubatud erinevate kasutajate ühenduste arv, mis minul samuti vaikeväärtus. Edasi tuli võrguseadistus, ka selle jätsin vaikeväärtuseks. Järgmiseks veel keele kodeeringu tugi, mille valisin manuaalselt UTF-8. Lisaks veel järgmiseks, et installeeritakse teenusena ja lisatakse teekond süsteemi muutuja "PATH" väärtuseks. Lõpuks ka määrata "root" kasutajale oma parool. Sellega sai ka MySQL installeeritud, kuid tuli teha veel veebi lehe jaoks andmebaas ja kasutaja selle andmebaasi külge.

Edasi oli vaja defineerida uus veebi leht IIS haldus liideses. Siiani oli kõik läinud libedalt. Nüüd pani veebi arendaja oma andmed vastavasse kataloogi ja MySQL andmebaasi ning käes oligi aeg testida. Kuna loomulikult oli arendaja unustanud mainida, et ta kasutab aadressi ümberkirjutamist lehel, mis toimis apache mod_rewrite htaccess failiga.Katsetamiste käigus toimis avaleht ilusti, kuid muud lehed ei toiminud. Selleks oli kiirelt vaja IIS teenusele sobivat lisa rakendust. Sai siis uuritud ja kõigepealt oli soov proovida mõnda tasuta versiooni. Selleks valisin Ionics Isapi Rewrite Filter nimelise programmi. Kasutasin msi 2.1 versiooni. Installeerimisel on oluline see, kas rakendad seda ühel või kõigil veebi lehtedel. Kuna hiljem selgus, et nii kui nii rakendub kõikjal, siis iga veebi lehe juur kataloogis peab olema fail nimega iirf.ini, selle puudumisel logitakse rakenduste logisse hoiatusi. Ehk mina lahendasin selle nii, et kõigil lehtedel millel seda vaja polnud, sai ini faili lisatud kirje "RewriteEngine OFF". Ainult vajaliku lehe kataloogi sai pandud ini, kus kirjas samad reeglid nagu htaccess, ainus vahe, et teatud reegleid IIRFiga kasutada ei saa. Neid reegleid sai katsetatud ja lõpuks tundus, et enda testkeskkond on valmis.

Siiani oli testkeskkond vana lehe alam virtuaal kaust. Seega sai käivitatud eraldi veeb, mis viitas samale teekonnale ja omas samu seadistusi, väjaarvatud iif.ini kus tuli reeglite eest võtta vana veebi virtuaal kataloogi nimetus. Käivitades uue eraldi lehena, hakkasid probleemid, et javascript ei toiminud. Selgus tõsiasi, et javascripti failid jõudsid tühjana kohale. Seda probleemi sai mitu päeva lahendatud. Uuritud erinevaid logisid, mille lugemine ajas rohkem segadusse, kui asi väärt oli. Lõpuks sai mõistus otsa ja pöördusin ühe firma poole, kust tulnud lahendus ei lahendanud probleemi. Seega sai suheldud järgmisega, ning sealt ei tulnud otsest lahendust, vaid näidati 2 tõenäolist probleemset kohta, milleks oli php kood ja iirf.ini. Kuna ei uskunud. et viga võiks koodis olla, siis sai katsetatud iirf.ini'ga. Selguski, et arendaja oli unustanud 3 lühikese teekonnaga linkide reeglid välja lülitada, mis põhjustasid selle, et kui pöörduti javascripti failide poole, siis suunati kasutaja valesse kohta.

Lõpuks oli nädal möödas ja leht sai toimima. Nüüd on vähemalt üks kasulik kogemus olemas, kuidas IIS 6, PHP5, MySQL5 ja IIRF2.1 omavahel toimima saada, et üks kaasaegne veebileht tööle hakkaks. Peaaegu alati on hea lasta kellelgi kolmandal asjale pilk peale visata, et leiaksid probleemile lahenduse. Muidugi see keegi kolmas peab olema asjas pädev. Ning alati, kui tundub, et enam ei saa aru kus viga võiks olla, siis on aeg selle kellegi kolmanda poole pöörduda ning päris tihti selgub, et milleski lihtsas on probleem. Seetõttu sai ka seda kogemust teiega jagatud.

Õpingukorralduse küsimused

Küsimus A

Kukkusid eksamil läbi. Kuidas edasi? Kaua on võimalik eksamit teha? Kellega kokkuleppida, et eksamit teha? Kuidas toimub järeleksamile registreerimine? Mis on tähtajad? Palju maksab, kui oled riigieelarvelisel (RE) kohal? Palju maksab, kui oled riigieelarvevälisel (REV) kohal?

Vastus

Tuleb minna korduseksamile, mida on võimalik sooritada kahe semestri jooksul peale õppesemestri lõppu. Korduseksami tähtaja määrab aine õppejõud kooskõlas õppeosakonnaga ning sellel osalemisest peab õppur end registreerima õppeosakonda. Riigieelarvelisel (RE) kohal olles on korduseksam tasuta ja Riigieelarvevälisel (REV) kohal on see tasuline ning see tasu kehtestatakse rektori käskkirjaga. Tasu peab olema makstud üleeelmise päeva õhtuks, arvestatuna enne korduseksamit.

Küsimus 3

Sul on olemas varasem töökogemus, mida sa tahad kasutada õppeainete arvestamisel (VÕTA). Millised on tegevused? Millised on tähtajad?

Vastus

Esitan VÕTA korrektse taotluse koos lisamterjalidega, kuhu kuulub ka maksekorraldus, õppeosakonda 10-ndal tööpäeval enne semestri punasejoone päeva.