1-php 4 fordítása És installálása

Upload: kovacslaszlo

Post on 23-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    1/13

    1. Fejezet

    A PHP 4 fordtsa s installlsa

    Bevezets

    Mieltt a nyelvben elmlyednnk, lnyeges, hogy az teleptve legyen s fusson a PHP. Mivel a PHP oly sokwebszervert s oper!i"s rendszert tmogat, ebben a fe#ezetben !sak nhny platformra t$rtn installlsramutatunk be pldt, mik$zben elegend inform!i"t ny%#tunk, amelynek birtokban &n igaztani tud#a a pldkataz egyedi platform#hoz.' rszleteiben megtrgyalt platform az 'pa!he (inu) s az **+P-+ -indows /. 0zek ltalnos webszerverkonfigur!i"k, s k1l$nb$znek annyira, hogy be lehessen mutatni vel1k a legt$bb platformon megval"stott,PHP installlshoz sz1ksges fogalmat. Platformspe!ifikus rszleteket a PHP webhelyn tallhat, awww.php.net !men.

    A PHP letltse

    Magt"l rtetdik, hogy a munka els lpse a PHP let$ltse. ' let$ltssel foglalkoz" fe#ezet a www.php.net2enk1l$nfle let$ltsi op!i"kat knl fel. ' legfrissebb PHP verzi" list#a a let$ltsi oldal tete#n tallhat" meg. 0gy3ni) szerverhez a#nlatos a komplett forrsk"d let$ltse s a PHP egyedi felptse. ' 3ni) kife#ezs brmely4ni)2szer5 platformra t$rtn hivatkozst #elent, %gy is mint (inu), 6+7, +olaris s gy tovbb.Windows esetben ajnlatos a PHP binris verzijna letltse.' let$ltsi oldalr"l a PHP egyik elz verzi"#nak, dokument!i"#nak s a kap!sol"d" PHP2eszk$z$kneklet$ltse is lehetsges. (ehetsges, hogy egy korbbi verzi"#% PHP2t akar let$lteni, ha mr van valahol msholegy fut" PHP k"d#a, s el akar#a ker1lni az inkompatibilits ko!kzatt.

    A binris verzi installlsa

    Ha mr megszerezte a PHP binris disztrib%!i"#t, az installls egyrtelm5. ' PHP leggyakoribb binrisinstall!i"#a a -indowsos verzi"#% telepts. Mivel nhny 3ni) disztrib%!i" tartalmazhat binris PHP2disztrib%!i"t is, egy r$vid install!i"s lerst is k$zl1nk ezen a helyen.

    Windows !binris installls' PHP2vel egynl t$bb op!i" rhet el !saknem minden dolog esetben. ' let$lt$tt, -indows binris PHPtartalmazza a Common Gateway Interface 89:*; verzi"#% PHP2t s az *+'P*2verzi"t is. Ha $n az InternetInformation Servert 8**+; vagy aPersonal Web Servert 8P-+; futtat#a, akkor a#nlott a PHP *+'P*2verzi"#nakhasznlata. ' 9:*2verzi" megk$veteli a futtathat" PHP behvst minden lap esetben, ezrt kevsb hatkony,mint a dinamikusan linkelt k$nyvtrak hasznlata, amilyen pldul az *+'P* kiter#eszts. 'z *+'P*2verzi"

    biztonsgosabb is, mint a 9:*2verzi", ezrt azt rszest#1k elnyben.

    A PHP "#AP"$%od&ljna installlsa

    Ha $n **+P-+, vagy ms -indows alap% *+'P*2t tmogat" webszervert hasznl, akkor a biztonsg s asklzhat"sg szempont#b"l a PHP *+'P*2modul#nak hasznlata a leg#obb vlaszts. 'z *+'P*2modulinstalllshoz msol#a be a phpwindows>system -indows ?@ esetn s >winnt>systemAB -indows / esetn;. 0zeket a f#lokat be kellmsolnunk a rendszerk$nyvtrba ahhoz, hogy brmely PHP < verzi" esetn az m5k$dhessen a -indows alatt.0zek megosztott k$nyvtrak, amelyeknek elrhetknek kell lenni a PHP < helyes m5k$dshez. 0zenfel1l

    bemsolhat#a a t$bbi 7((2f#lt a rendszerk$nyvtrba, ha akar#a, de azok elmozgatsa nem sz1ksges ahasznlathoz.0zek utn be kell konfigurlni az **+2t vagy a P-+2t, hogy az *+'P*2modult hasznl#k PHP2f#lokkiszolglsakor. 'z **+ konfigur!i" esetn ezt a Mi!rosoft Management 9onsole elindtsval tehet#1k meg,amely ltalban a -indows / Cption Pa!k men1bl rhet el. 'z D.D. bra mutat#a be a men1hierar!hit azalkalmazs elrshez -indows / alatt.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    2/13

    Ha mr fut a Mi!rosoft Management 9onsole, klikkel#en az egr #obb gomb#val a webszervernek!som"pont#ra 8val"szn5leg a 7efault -eb +ite !mke lesz az; s vlassza ki a Properties 8/ula#donsgok;

    men1pontot, ahogyan az az D.B. brn is lthat". 0zutn a Properties dial"gusablakban a Home 7ire!tory 8Homek$nyvtr; f1lben kattintson a 9onfiguration 86ellts; gombra. 0z teszi lehetv, hogy m"dosthassonkiter#esztsek trstsn, illetve, hogy %# trstst vehessen fel.

    Elikkel#en az 'dd 8Hozzad; gombra s r#a be a kvnt inform!i"t. 'z D.A. bra mutat#a be a PHP *+'P*2modul phtml kiter#eszts5 f#lokkal val" trstst.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    3/13

    Ha megt$rtnt a trsts, az inform!i" meg#elenik az 'ppli!ation 9onfiguration 8'lkalmazs belltsai;dial"gusablakban. /esztelshez hasznos lehetF hogy nhny kiter#esztshez a PHP *+'P*2t trst#uk, nhnyhoz

    pedig a futtathat" 9:*2t. ' sa#t webszerverem konfigur!i"#t az D.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    4/13

    A PHP f&ttat*at +,"$nt trtn- alal%azsaHa nem *+'P* rendszer5 szervert hasznl, vagy valamilyen ms oka van a futtathat" 9:* vlasztsra, azinstall!i" hasonl" az elz lpsekhez. Gal"#ban minden lps 2 a kiter#esztsi trsts kivtelvel 2 ugyanaz.'z *+'P* 7(( kivlasztsa helyett vlassza ki a php.e)e f#lt. 'z **+P-+ webszerver paramtereket k1ld afuttathat" 9:*2knek, gy a s s paran!ssori op!i"t biztostanunk kell a futtathat" llomny nevvel. 0z az D.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    5/13

    A PHP fordtsa

    Ha &nnek az egyedileg ltrehozott PHP rugalmassgra van sz1ksge, vagy a sa#t kiter#esztst szeretn a PHP2nyelvhez adni, tisztban kell lennie a PHP fordtsnak folyamatval. 0zt a DD. fe#ezetben *+,d-.rafel$as/n0l0sa1 trgyal#uk. Platform#t"l f1ggen elkpzelhet, hogy nin!s is ms lehetsge, !sak a PHPegyedi ltrehozsa, mivel nem ll rendelkezsre binris disztrib%!i".

    A PHP fordtsa 2ni3 'latfor%on0z a rsz segtsget ny%#t a PHP fordtshoz 3ni) platformon. 0mlkezzen vissza, hogy a 3ni) platform nvvelhivatkozunk brmely 4ni)2szer5 platformra, mint a (inu), a 6+7, a +olaris stb. /ermszetesen ezek a

    platformok eltrnek egymst"l, de a fordts lpseinek nagy rsze tel#esen azonos lesz. Platform#r"l egyediinform!i"khoz #uthat a www.php.net2en tallhat" keres lehetsgvel.6rmely platform esetn k1l$nfle m"dokon lehet a PHP2t lefordtani. Ha egy 3ni) rendszert pt 'pa!hefuttatsra, akkor a PHP2t ltrehozhat#a binrisan futtathat"knt, dinamikusan bet$lt$tt modulknt vagy statikusk$nyvtrknt is. 'bban az esetben, ha nem az 'pa!he webszervert hasznl#a, tovbbi rszletekrt fordul#on aPHP, illetve a webszerver dokument!i"#hoz. Ha a#nlani kellene, akkor a legt$bb alkalmazshoz taln adinamikusan bet$lt$tt 'pa!he2modul a leg#obb. 'bban az esetben ha statikusan k$t#1k az 'pa!he2hoz a PHP2t,akkor sokkal t$bb munka lesz vele minden alkalommal, amikor a PHP konfigur!i"#t meg kell vltoztatnunk.Luttathat" 9:*2knt biztonsgi megfontolsok is felmer1lnek.

    ' k$vetkez rsz felttelezi, hogy mr megszerezte a legfrissebb PHP2forrst, s ki is !somagolta a f#lokat agpn egy k$nyvtrba. ' fordts folyamata lnyegben brmely esetben ugyanaz. 0lsz$r a !onfigure szkriptetkell lefuttatni a konfigur!i"s lehetsgek belltshoz. ' k$vetkez lpsben a make segdprogramot kellalkalmazni a fordts elvgzshez. Ggezet1l a PHP2t kell installlnunk s a webszervert kell %#raindtanunk. '!onfigure szkript rszletei a futtathat" 9:* fordtsval foglalkoz" bekezdsben tallhat"k, ezrt a#nlatos 2 tte2kints gyannt 2 elolvasnia azt a rszt is.

    F&ttat*at +," fordtsa' PHP futtathat" 9:*2knt t$rtn fordtsa a legegyszer5bb folyamat, tovbb #" gyakorls abban az esetben,ha mg nem fordtott soha programot 3ni) rendszeren. ' lpsek tel#es list#a a k$vetkez k"dban tallhat" azzala meg#egyzssel, hogy a lpsek k$z1l nhnyat nem kell felttlen1l vgreha#tanunk. 'z op!ionlis lpseketdlt bet5kkel rtuk. ' phpdir referen!it a sa#t PHP alapk$nyvtrval kell helyettestenie.

    !d JphpdirKrm config% cac$emake clean

    .!onfiguremakemake install

    'z elbbi paran!sok lefuttatsval kit$r$l1nk minden !a!he2elt konfigur!i"s belltst, let$rl1nk minden ltezbinris ob#ektumot, ma#d lefordt#uk a PHP2t futtathat" 9:*2knt. N#ra meg#egyezz1k, hogy ez a legegyszer5bbm"dszer, s ezt pldnak szntuk. Gal"di fordts esetn az op!i"k a PHP attrib%tumait meghatroz"konfigur!i"s szkriptbl szrmaznak.' msodik s harmadik sorok op!ionlisak, mert azokat az elz fordtsi folyamat s konfigur!i" utnitakartsra hasznl#uk. Ha elzleg nem konfigurlt s fordtott PHP2t, ezeket ltalban kihagyhat#a a PHPfordtsakor, m bizonyos esetekben hasznlni kell ket. Ha meghatroz" konfigur!i"s belltsokat vltoztatmeg, vagy tvlt a futtathat" 9:* binris llomnyr"l ms tpus% fordtsra, sz1ksge lehet ezen sorok

    lefuttatsra a sikeres fordtshoz. ' fordtst vgz szmt"gp sebessgnek f1ggvnyben a tel#eskonfigur!i" s ltrehozsi folyamat idignyes lehet. ' konfigur!i"s !a!he f#l s a binris ob#ektumok megha2gysa az %#abb futtatsok k$z$tt szmotteven !s$kkenti a fordts ide#t.' folyamattal most ismerkedknek meg#egyezz1k, hogy a konfigur!i"s szkript k1l$nflerendszerinform!i"kat, eszk$z$ket, valamint f#lokat keres a rendszerben. 0zek utn egy platformspe!ifikusfordt" szkriptet hoz ltre. Ha hiba lp fel a konfigur!i"s folyamatban, az ltalban azt #elenti, hogy egysz1ksges eszk$z vagy f#l hinyzik, vagy helytelen1l konfigurlt. ' konfigur!i"s szkript befe#ezse utn arendszer egy config%cac$e nev5 f#lt hoz ltre, amely magr"l a rendszerrl tartalmaz inform!i"kat, gy azellenrzseket a k$vetkez konfigurlskor nem kell %#ra lefolytatni. Ha meghatroz" vltoztatsokat ha#t vgrea rendszere konfigur!i"#n, akkor sz1ksgess vlhat a !a!he f#l let$rlse a k$vetkez !onfigure futtats elttaz %# vltoztatsok biztos figyelembevtelhez.Miutn az elz paran!sokat vgreha#tottuk, az %# futtathat" program, a php mris rendelkezsre ll. ' k$vetkez

    paran!!sal tesztelhet#1k le a futtathat" programot=

    $ 2 !dev!n'll

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    6/13

    Ha a k$vetkezkh$z hasonlatossal tall#a magt szemben, akkor sikeresen fordtotta s installlta a PHP2tfuttathat" 9:*2knt=

    3#Powered#4y5 PHP!(%6%7Content#tye5 te"t!$tml

    Meg#egyezz1k, hogy a PHP ezen verzi"#a val"szn5leg nem rendelkezik azokkal a tula#donsgokkal, amelyek afelhasznlshoz sz1ksgesek, mivel az alaprtelmezett belltsokkal fordtottuk. N#ra le kell futtatnia a!onfigure szkriptet az ignyelt op!i"k belltshoz, ma#d le kell fordtania a PHP2t s %#ra is kell installlnia azt.0lnyknt lehet megemlteni a PHP alapbelltsaival kap!solatban, hogy az imnt lert egyszer5 konfigur!i"sok, gyakrabban hasznlt konfigur!i"s belltst tartalmaz, mint a My+O( adatbzis tmogatst, a session2$kets mg rengeteg mst. 0z azt #elenti teht, hogy az elbbi paran!sok %gy fordt#k le a PHP2t, hogy a legt$bbfelhasznlsi m"dozat esetn elkezdhet1nk PHP2szkripteket rni.Ha tmogatsra van sz1ksg1nk ms adatbzishoz vagy ms kiter#esztshez, akkor annak megfelelen kell

    belltanunk a !onfigure op!i"it. 'z aktulis konfigur!i"s lehetsgek list#hoz a k$vetkez paran!sot kellfuttatni=

    %!config're ##$el

    ' legt$bb konfigur!i"s bellts, amely a PHP #ellemzire hat 22enable2L0'/4I0 vagy 22with2P'9E':0form#%. 0gy tula#donsg PHP2hez adshoz hasznl#a az albbi formtumok egyikt=

    ##enable#89AT:R9##enable#89AT:R9 ;yes

    ' PHP egy #ellemz#nek eltvoltshoz alkalmazza az albbiakat=

    ##disable#89AT:R9 ##enable#89AT:R9;no

    ' konfigur!i"s lehetsgek tel#es list#a a referen!iak$nyvben tallhat" meg, a B. k$tetben. 'zok a lehetsgek,amelyek az 22enable szintaktikt hasznl#k, ltalban beptett lehetsgek, mint a r$vid !mkk 8tagek;

    hasznlatnak kpessge vagy az ftp tmogats. ' !somagok ltalban k1ls modulok, amelyeket a PHP2vel$ssze lehet k$tni, mint az CI'9(02adatbzis tmogatsa vagy a ava tmogatsa. 0zek a lehetsgek k1lsforrsk"dot s a k$vetkez szintaktika alkalmazst ignylik a felvtelhez=

    ##wit$#PAC+AG9;!'tvona

    0gy !somag kivtelhez hasznl#a a k$vetkezt=

    ##wit$#PAC+AG9;no##wit$o't#PAC+AG9

    Pldaknt tekintse meg a k$vetkez konfigur!i"s paran!sot=

    %!config're ##wit$#a"s;!www!bin!a"s ##wit$#.ava ##wit$#cybercas$;!$ome!blake!mck#=%7%6%>#i?@>#c#lin'"#gn'libc7% ##wit$#'ni"B4C;!'sr!local!'ni"B4C ##disable#deb'g ##enable#track#vars ##enable#fin)f'ncs ##wit$#

    snm;!$ome!blake!'cd#snm#(%%7 ##enable#'cd#snm#$ack

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    7/13

    'z elz konfigur!i"s paran!s bellt#a a PHP2t a ava, a 9yber9ashQ, a Simle Detwork ManagementProtocol 8+MP; s a uni)C7692!somagok hasznlatra. ' ava2f#lok helyt nem adtam meg, gy a !onfigureszkript az alaprtelmezett helyet hasznl#a ehhez a !somaghoz. /ovbb a 22with2ap)s lehetsget is kiv2lasztottam, ami a PHP2t dinamikusan bet$lt$tt 'pa!he2modulknt val"st#a meg ahelyett, hogy futtathat" 9:*2knt fordtan le. 0zt a ksbbiekben sokkal rszletesebben trgyal#uk ma#d. ' t$bbi lehetsg az elzkonfigur!i"ban a debug inform!i" hasznlaton kv1l helyezse s a tra!k2vars, fin2fun!s s az u!d2snmp2ha!k

    lehetsgek hasznlatba helyezse. ' fin2fun!s egy ehhez a k$nyvh$z rt kiter#eszts 8lsd DD. fe#ezet;, de a t$bbiszablyos PHP konfigur!i"s alkot"elem."llehet az elz konfigur!i" nem futtathat" 9:*2fordt", bemutat#a a !onfigure szkript ere#t. ' felvehet!somagok nagy rszt k1l$n kell let$lten1nk. ' !somagok fellelhetsgrl a PHP on2line dokument!i"#ban, awww.php.net2en tallhatunk rszleteket.' PHP futtathat" 9:*2knt t$rtn fordtsa utn konfigurl#a webszervert annak hasznlatra. 'z 'pa!hewebszerver konfigurlshoz a httpd.!onf f#lt kell m"dostania a k$vetkez direktvk hozzadsval=

    AddTye alication!"#$ttd#$ %$AddTye alication!"#$ttd#$ %$tmlAddTye alication!"#$ttd#$ %incAction alication!"#$ttd#$ !cgi#bin!$

    'z els hrom direktva mond#a meg az 'pa!he2nak, hogy az $sszes php, phtml s in! kiter#eszts5 f#l azappli!ation)2httpd2php mdiatpusba tartozik. 0zek utn az 'pa!he az utols" direktva hatsra k1ldi el a fentemltett mdiatpusba tartoz" f#lokat a futtathat" PHP szmra. 0z azt felttelezi, hogy a PHP2t korbban mr a!gi2bin k$nyvtrba msolta a webszervern.0zen direktvk a minimumk$vetelmnyek a PHP 'pa!he2!sal t$rtn alkalmazsa esetn, de ugyanezmegval"sthat" egyb m"dokon is. ' tovbbi rszletekrt tekintse meg az 'pa!he konfigur!i"s kzik$nyvt.

    A PHP fordtsa stati&s )satolssal az A'a)*e$*oz'z 'pa!he lehetsget biztost, hogy statikusan !satol#uk 8linkel#1k; maghoz a binris 'pa!he2hoz a #rulkosmodulokat. 'z op!i" hasznlata PHP2vel a szerver rendszernek biztonsgt n$veli a 9:* futtathat" verzi"#hozkpest, s az alkalmazsnak tel#estmnyt is #avt#a. ' m"dszer htrnya az, hogy minden alkalommal, amikorlefordt#uk a PHP2t, %#ra le kell fordtanunk az 'pa!he2ot is. 0z idrabl" s frusztrl" lehet, mivel a PHPkonfigur!i"s problm#a az 'pa!he hib#t okozhat#a. Mivel azonban alkalmazsspe!ifikus rvek sz"lnak a

    statikusan !satolt modul hasznlata mellett, teleptsnek folyamata a k$vetkez bekezdsekben tallhat" meg.' PHP konfigurlsa s fordtsa eltt elengedhetetlen az 'pa!he konfigurlsa. Leltve, hogy let$lt$tte skit$m$rtette az 'pa!he2forrst, hasznl#a az albbi paran!sokat az 'pa!he konfigurlshoz=

    cd 2aac$e)dirE

    %!config're

    Ha ezt megtette, konfigurlhat#a s lefordthat#a a PHP2t a k$vetkezkkel=

    cd 2$)dirE%!config're ##wit$#aac$e;2aac$e)dirE

    makemake install

    0z a PHP2t az 'pa!he2on bel1li statikus k$nyvtrknt konfigurl#a. Meg#egyezz1k, hogy a 22with2apa!hekonfigur!i"t a PHP statikus k$nyvtrknti fordtshoz s az 'pa!he2forrshoz sz1ksges elrsi %t megadsrahasznl#uk. ' k$vetkezkben le kell fordtania magt az 'pa!he2ot a k$vetkez paran!sokkal=

    cd 2aac$e)dirEF %!config're ##refi";!www ##activate#mod'le;src!mod'les!$(!lib$(%amake make install

    ' 22 prefi) direktva a rendszerben eltrhet, mivel azt hatrozza meg, hogy hol vannak installlva azar!hitekt%raf1ggetlen f#lok. 'z 'pa!he imnti op!i"kkal megval"stott installlsa utn egy olyan 'pa!he2!salrendelkezik, amelybe a PHP be van ptve. 0zek utn elindthat#a az 'pa!he2szervert s hasznlhat#a a tesztf#lt

    ugyan%gy, ahogyan azt az D.D. programlistban a konfigur!i" tesztelsre mr bemutattuk.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    8/13

    +z1ksg esetn az 'pa!he konfigur!i"s direktvkat a httpd.!onf f#lban kell belltanunk annak rdekben,hogy az 'pa!he helyesen dolgozza fel a PHP2f#lokat. ' PHP2f#lok felt1ntetsre belltott kiter#esztsekalap#n megfelelen kell belltani a konfigur!i"s f#lt is. ' szablyos konfigur!i" ebben az esetben isvalahogy gy nz ki=

    AddTye alication!"#$ttd#$ %$

    AddTye alication!"#$ttd#$ %$tmlAddTye alication!"#$ttd#$ %inc

    'z itt emltett utastsok bemutat#k, hogy hogyan lehet lefordtani a PHP egyszer5 vltozatt a szablyosalaprtelmezsekkel. ' PHP konfigur!i"#nak megvltoztatsr"l tovbbi inform!i"kat a futtathat" 9:*fordtsval foglalkoz" szakaszban tallhat.

    A PHP dina%i&san betlttt A'a)*e$%od&lnt trtn- fordtsa' PHP dinamikusan bet$lt$tt 'pa!he2modulknt t$rtn lefordtsa nem k1l$nb$zik lnyegesen az eddigismertetett m"dszerektl. 0gyik elnye ennek a m"dszernek az, hogy a PHP %#b"li ltrehozsakor nem sz1ksgesaz 'pa!he %#b"li lefordtsa. 0zenfel1l a PHP nhny kiter#esztse 8pldul a ava2tmogats; a helyes futsrdekben a PHP dinamikus ob#ektumknt val" ltrehozst ignyli. 'nnak rdekben, hogy az 'pa!hetmogassa a dinamikus modulokat, sz1ksges lehet egyszer %#ra lefordtanunk azt a k$vetkez konfigur!i"s

    op!i"kkal=

    cd 2aac$e)dirEmake clean%!config're #enable#mod'le;so ##enable#r'le;SHA99S)CB+9 ##refl";!www

    makemake install

    'z elz paran!sok ezenkv1l elksztik az ap)s szkriptet, amely egy 'pa!he ltal hasznlt dinamikus modulfordtshoz sz1ksges. Ha a PHP dinamikus modulknt val" lefordtsakor gond#ai vannak az ap)s szkripttel,akkor elkpzelhet, hogy meg kell tennie az elbbi lpseket annak rdekben, hogy helyesen konfigurlt ap)sszkriptet kap#on. ' dinamikus modulokat tmogat" 'pa!he fordtsa utn hasznl#a az albbi paran!sokat a PHP

    ltrehozshoz=

    cd 2$)dirEmake cleanrm config%cac$e

    %!config're ##wit$#a"s;!www!bin!a"s *egyb oci,k1makemake install

    ' takart" paran!sok szintn op!ionlisak, de a#nlatos lefuttatni azokat, ha tel#esen ms konfigur!i"val mrfordtott PHP2t. ' 22with2ap)s konfigur!i"s direktva elrsi %tvonalnak az &n szervern tallhat" ap)s szkripttel#es elrsi %tvonalval kell megegyeznie.

    Mint a t$bbi konfigur!i"s s fordtsi pro!ed%ra esetn is, be kell lltania az 'pa!he2nak, hogy az &n ltalkvnt PHP f#lkiter#esztseket hasznl#a. Ha ezt megtette, elindthat#a az 'pa!he2ot s lekrheti a teszt PHP2szkriptet.

    A 2ni3 'latfor%on trtn- PHP$fordts sszefo/lalsa0nnek a bekezdsnek nem az a !l#a, hogy kimert listt ny%#tson az $sszes lehetsges konfigur!i"s op!i"b"l,hanem az, hogy bemutassa a k1l$nfle vltozat% PHP2k ltrehozsnak alapvet m"dszereit. Ha mg nemfordtott PHP2t, akkor elsz$r meg kell pr"blnia azt a legalapvetbb konfigur!i"ban, s !sak ksbb kellhozzadnia az op!i"kat. Ha a fordts folyamatt megismerte, akkor egyszer5 a k1l$nfle konfigur!i"kattesztelni s hozzadni nhny nem standard kiter#esztst. ' PHP fordtsa s az &n 'pa!he2install!i"#val val"egy1ttm5k$dsnek tesztelse utn, meg kell tekintenie az ebben a fe#ezetben ksbb k$vetkez futsi ide#5konfigur!i"s op!i"kat.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    9/13

    A PHP fordtsa Windowsban

    ' PHP fordtsa a -indows al a kezdeti belltsok miatt sokkal bonyolultabb, mint a 3ni) platformos fordts.'z on2line dokument!i" a PHP fordtshoz a R2os verzi"#% Gisual 9SS2t a#nl#a, annak ellenre, hogy az @2$sverzi" is m5k$dhet. Meg#egyzem, hogy megpr"bltam a 6orland 9SS 6uildert is hasznlni, de nem #rtamsikerrel. ' legfbb problma az elre felptett lib f#lokkal van, mert a Mi!rosoft s a 6orland ms

    ob#ektumformtumot hasznl. 0lkpzelhet, hogy a 6orland2fordt" is hasznlhat", de akkor az $sszes PHP2k$nyvtrat %#ra le kellene fordtani. ' tovbbi fe#tegetsben felttelezem, hogy Gisual 9S S 2t hasznl.' kezds eltt k1l$nfle #rulkos tmogat" f#lokat s programokat kell let$ltetn1nk. 'z D.D. tblzat mutat#a,hogy miket is kell let$lten1nk val"#ban, s megad#a a k$nyv rsnak ide#n rvnyes let$ltsi helyeket.' felsorolsban szerepl 9ygwin2eszk$z$k val"#ban nhny k$zkedvelt :4 segdprogram $sszessge, mint agcc a make s a bison% 0zen eszk$z$k k$z1l nhnyat a fordts folyamatn hasznlunk, ezrt le kell t$lteni sinstalllni kell ket a folytats eltt. ' t$bbi f#lra is sz1ksg van, de azok alapveten a PHP2disztrib%!i" rszei,azaz nem k1ls gyrt" ltal ksztett eszk$z$k. ' PHP2forrsk"d a 3ni) verzi" fordtsakor hasznlt forrssalmegegyezik.0zenkv1l sz1ksg van mg kit$m$rt segdprogramra 8unzip; is. Tn a -inUipQ2et hasznlom, mert az mindengond nlk1l kezeli a .tar.gz f#lokat is. Ms t$m$rt segdprogramok is biztosthat#k ezt a lehetsget. 0lsz$rinstalll#a a 9ygwin2segdprogramokat. (ehetsges, hogy kzzel kell belltania egy k$rnyezeti vltoz"t a9ygwin2install!i" helynek megadshoz. Ha -indows ?@2$t futtat, akkor hozzadhat#a ezt a k$rnyezetivltoz"t az autoe)e!.bat f#lhoz.-indows /2n az egr #obb gomb#val klikkel#en a My 9omputer 8+a#t gp; ikonra, s vlassza ki a Properties8/ula#donsgok; men1pontot. 0zutn vlassza ki az 0nvironment 8E$rnyezet; f1let s vegyen fel egy %# vltoz"taz D.@. bra szerint. ' vltoz" neve 9V:-*, s az rtke a 9ygwin2eszk$z$k install!i"#nak elrsi %tvonala.0zutn hozzon ltre egy k$nyvtrat s !somagol#a ki oda a winABbuild.zip f#lt.0zek utn indtsa el a Gisual 9S S2t s a /ools 80szk$z$k; men1bl vlassza ki az Cptions 86elltsok;men1pontot. Glassza ki ezutn a 7ire!tories 8E$nyvtrak; f1let az D.R. bra szerint. ' W+how dire!tories forX8E$nyvtrak meg#elentse; leg$rd1l listban vlassza ki az 0)e!utable files 8Luttathat" f#lok; op!i"t s vegyefel a 9ygwin bin k$nyvtrt.

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    10/13

    0zutn vlassza ki az in!lude f#lokat a leg$rd1l listb"l s ad#a meg a winABbuild>in!lude k$nyvtr helyt*%>% bra;. Gg1l vlassza ki a k$nyvtri 8(ib; f#lokat s ad#a meg nekik a winABbulid>lib k$nyvtrat. 0zek alpsek ad#k meg a Gisual 9S S fordt"nak az ppen installlt, hozzadott eszk$z$k s f#lok helyt.

    ' k$vetkez lps a resolv.lib %# verzi"#nak lefordtsa. 0lsz$r hozzon ltre egy k$nyvtrat, s !somagol#a kioda a bindlibwAB.zip f#l tartalmt. ' Gisual 9S S 2ban nyissa meg a bindlib.dsp pro#ektet. ' B&ild 8Lordts;men1bl vlassza ki a #et A)tive +onfi/&ration 8'ktv konfigur!i" belltsa; men1pontot, s vlassza ki ak$nyvtr debug 8hibakeres; vagy a release 8vgs; vltozatt att"l f1ggen, hogy milyen verzi"#% PHP2tszeretne felpteni. yom#a meg az LY gombot a pro#ekt lefordtshoz. ' befe#ezs utn msol#a a resolv.lib f#lta winABbuild>lib k$nyvtrba.0zutn !somagol#a ki a PHP forrsk"d#t s a number.tar.gz f#lt a sa#t ki!somagol" segdprogram#val vagy a9ygwinben tallhat" tar segdprogrammal. Msol#a a ki!somagolt f#lokat, a number.!2t s a number.h2t a PHPforrsf#nak e)tb!math k$nyvtrba.Leltve, hogy eddig rendben megtette a lpseket, kszen ll a PHP fordtshoz. *ndtsa el a Gisual 9S S 2t s snyissa meg a winAB k$nyvtrban lev PHP forrsf#ban elhelyezked php

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    11/13

    A PHP f&tsi idej belltsaina onfi/&rlsa

    /el#esen mindegy, hogy melyik platformot vagy melyik PHP2vltozatot vlaszt#a, a futsi ide#5 belltsokugyanazok. ' PHP a php.ini f#lt hasznl#a a futsi ide#5 viselkedsnek meghatrozsra. 0z a f#l a PHP2forrssal egy1tt rkezik php.ini2dist s php.ini2optimized formban. Ha mg nem ismerte meg az optimalizlt

    belltsokat, akkor a#nlatos az alapvet, php.ini2dist f#llal kezdenie. 'z els lps a f#l msolsa stnevezse. ' f#lt php.ini2nek kell tnevezni s platformt"l f1ggen a megadott k$nyvtrba msolni. ' megadottk$nyvtrakat az D.B. tblzat tartalmazza.' konfigur!i"s f#l msolsa s tnevezse utn az ignyeinek megfelelen szerkesztheti a f#lt. ' php.ini f#lszakaszokra van osztva Zs/akas/)nv hatrol"kkal a -indows szablyos int f#l#hoz hasonl"an. ' f#lter#edelmes meg#egyzseket tartalmaz, amelyek ler#k a szakaszokat s a konfigur!i"s lehetsgeket. ' k$nyvksbbi rszben elfordul ma#d olyan eset, amikor k1l$nleges op!i"kat kell belltanunk a plda hasznlathoz.[ltalban egy plda egy szakasznevet, op!i"nevet s hasznland" rtket tartalmaz. (ehetleg a php.ini f#lbaneszk$z$l#e a vltoztatst s ezutn indtsa %#ra az 'pa!he2ot az rvnyre #uttatshoz, m lteznek msme!hanizmusok is a belltsok megvltoztatsra, amelyeket a ksbbiekben mg megtrgyalunk.

    A '*'.ini fjl *asznlataHa %gy tall#a, hogy vltoztatnia kell a futsi ide#5 konfigur!i"n, az a#nlott m"dszer a php.ini f#l szerkesztse,ma#d a webszerver %#raindtsa. Ha a futtathat" 9:*2verzi"t hasznl#a, akkor nem kell %#raindtania awebszervert, mivel az minden alkalommal beolvassa a php.ini f#lt, amikor a futtathat" 9:*2t hv#k.Pldakppen megvltoztathat#a a PHP hiba#elzsnek m"d#t a hiba#elz konfigur!i"s elem megvltoztatsval.'z alaprtelmezs szerint az elemek rtke a k$vetkez=

    error)reorting ; 9)A&& J K9)DBTIC9 L Minden $ib0t ki.ele/ kivve a figyelme/tetseketdislay)errors ; Bn L A $ib0k kir0sa *a HTM& s/krit rs/eknt1log)errors ; Bff L A $ib0k log f0.lba tNrtnO r0saerror)log ; syslog L A $ib0kat a syslogba r.a

    'z els elem llt#a be az $sszes hiba1zenetet hiba#elzskor, kivve az 05678"+0 tpus% hibkat. ' k$vetkezsor hatsra #elennek meg a hibk a H/M(2szkriptbe gyazva. ' k$vetkez kett a f#lba t$rtn rst vezrli./egy1k fel, hogy az alkots alatt nem akar#a meg#elenteni a hiba1zeneteket, hanem adott f#lba szeretn mentenivalamennyit. ' k$vetkez konfigur!i"s vltoztatsok ezt ha#t#k vgre=

    error)reorting ; 9)A&& L Minden $ib0t ki.ele/

    dislay)errors ; BffLlog)errors ; Bn L A $ib0kat a rends/er log f0.lba r.a

    error)log ; !tm!$)log L A $ib0kat a !tm!$)log#ba r.a

    0z a konfigur!i" az $sszes hibt, belertve a figyelmeztetseket is, a tmp phplog f#lba r#a. /ermszetesen af#lt a megfelel engedlyekkel kell elltnunk a hibk rshoz.' konfigur!i"s belltsok nagy szma miatt nem k$z$l#1k a tel#es listt, m a rszletes lista megtallhat" a 9;f1ggelkben. 0zt a rszt a belltsok ltalnos hasznlatnak bemutatsra szntam. Ha egy konkrt rtkre vansz1ksge, nyissa meg a php.ini f#lt kedven! sz$vegszerkeszt#ben, s keresse meg a belltst. [ltalbanelegend meg#egyzst tall az alkalmazhat" rtkekre.

    9s %dszere a PHP f&tsi idej onfi/&r)ijna %e/vltoztats*oz' PHP futsi ide#5 belltsainak vltoztatst megval"st" kt m"dszerhez nem kell a php.ini f#lt hasznlni. 'zels az 'pa!he httpd.!onf, a msodik az 'pa!he .hta!!ess f#l#ban t$rtn vltoztats. 'z els m"dszert akkorhasznl#uk, ha egy adott virtulis gazdaszmt"gp vagy k$nyvtr meghatrozott PHP2belltsait szeretn

    megadni. ' msodik m"dszert ltalban abban az esetben hasznl#uk, ha a php.ini vagy a httpd.!onf f#l nemrhet el k$zvetlen1l. 0z pldul akkor fordul el, amikor szolgltat"t hasznlunk. 'zonban ez a legkevsba#nlott m"dszer, mivel minden alkalommal, amikor ugyanabb"l a szerverk$nyvtrb"l kr1nk le egy weblapot,

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    12/13

    ahol a f#l is van, a szerver a .hta!!ess f#lt beolvassa s nyelvtani elemzsnek veti al. 0z a webszervertel#estmnyt ltalban #elentsen !s$kkenti.Mindkt esetben ugyanaz a m"dszer a PHP belltsainak megvltoztatsra. 'lkalmazza a phpvalue s a

    phpflag direktvkat a kvnt rtkek belltsra. Pldul az elbb emltett hiba#elz konfigur!i"s rtkekhasznlatakor az 'pa!he2direktvk a k$vetkezk=

    2irt'alHost Q7%%%EServerAdmin blakeintec$ra%netoc'mentRoot !www!$osts!wwwro.ects!ServerDame www%testserver%com$)val'e error)reorting 76($)flag dislay)errors off$)flag log)errors on

    $)val'e error)log !tm!$)log2!irt'alHostE

    ' httpd.!onf f#lban az elbbi belltsok alkalmazsval egy nv alap% virtulis szerver, a www.testserver.!omsa#tsgos hiba#elz inform!i"it llthat#uk be. Ha ms virtulis szerverek is ugyanazt a hardvert alkalmazzk,akkor szoks szerint a php.ini f#l rtkeit is hasznl#k. 0z teszi lehetv k1l$nfle PHP2konfigur!i"k

    hasznlatt annak alap#n, hogy ppen melyik virtulis szervert vagy k$nyvtrat rik el.Ha be kell lltania a PHP konfigur!i"s vltoz"kat, de &n nem rendelkezik k$zvetlen hozzfrssel a php.inivagy a httpd.!onf f#lok brmelyikhez, akkor hasznlhat#a az 'pa!he .hta!!ess f#l#t. 0z szintn hasznos, haegy hatalmas weboldal egyetlen k$nyvtrnak vannak egyedi belltsai. Pldul sz1ksge lehet spe!ilishiba#elz belltsokra egyetlen k$nyvtr esetben, mivel hibakeresst akar vgreha#tani. ' k$vetkez egy

    plda .hta!!ess f#l=

    $)val'e error)reorting 76=Q$)flag log)errors off$)flag dislay)errors on

    Ligyel#e meg, hogy mindkt 'pa!he konfigur!i"s plda esetben az errorreporting rtkt nem nevestettkonstanssal, hanem szmmal lltottam be.

    0z t5nik az egyetlen helyes m"dszernek az rtkek belltsra. 0zrt kell emlkeznie, hogy a PHP 'pa!he2direktvkkal megval"stott konfigurlsakor ne hasznl#on egyetlen PHP nevestett konstanst sem rtknek.0llenkez esetben nem a kvnt eredmnyt kap#a.' rendelkezsre ll" konfigur!i"s me!hanizmusok lehetsgeinek bemutatshoz s az elz pldkmegvilgtshoz az D.\. bra szemllteti, hogy mennyire rugalmasan, az ignyekhez s a k$rnyezetekhezigazodva konfigurlhat#uk a PHP2t.

    :sszefo/lals

  • 7/24/2019 1-PHP 4 Fordtsa s Installlsa

    13/13

    0z a fe#ezet szmos te!hnikt mutatott be a PHP2vel kap!solatban. ' rugalmassg, valamint a tmogatottplatformok szma miatt kptelensg tel#es lerst adni a konfigur!i"s lehetsgekrl. 'zonban az itt lert s aPHP2webhelyen 8www.php.net; tallhat" inform!i"kkal fel lehet installlni s be lehet konfigurlni a PHP2t asa#t platform#ra.Meg kell #egyeznem tovbb azt is, hogy a PHP rengeteg natv f1ggvnyt biztost a konfigur!i"s belltsokmegvltoztatsra. Et plda ezek k$z1l= az errorreporting8; s a settimelimit8; f1ggvny. 0zen

    f1ggvnyekrl tovbbi inform!i"k a referen!iak$nyvben 8B. k$tet; vannak.