Liekam PHP kā moduli Apache webserverī

Kaut kā izdomāju, ka derētu uzrakstīt arī otro veidu kā piedabūt PHP pie sava Apache web servera uz Windows operāciju sistēmas (OS). Šis paņēmiens būs daudz vienkāršāks un ērtāks kā arī šo variantu izmanto lielākā daļa lietotāju, arī es visu laiku lietoju tikai šo variantu.

Tas būs turpinājums rakstu sērijai:
Liekam Apache web serveri uz savas Windows kastes
Liekam PHP + Apache – PHP instalējams kā exe fails. Sākumā šo variantu aprakstīt es izvēlējos tikai tāpēc, ka man tas šķita iesācējam draudzīgāks, jo PHP instalējās kā jebkura cita Windows programma. Rezultātā lietotājs varētu saprast, ka Apache ir viena programma, bet, ja mēs vēlamies arī PHP skriptu atbalstu, tad jāinstalē arī programma, kas atbalsta šo PHP.

Šoreiz mēģināšu īsumā aprakstīt kā bez instalēšanas ātri piešķilt PHP kā moduli uz tā paša Windows Apache 1.3.x versijas. Esmu migrējis no Windows 98SE uz Windows 2000 Pro un šajā sakarā arī būs neliels komentārs.

Ja gadījumā tu lieto NT tipa OS, t.i., Windows NT, 2000 un XP, tad izlasot rakstu par Apache instalāciju, vienīgā problēma, kas varēja rasties bija “hosts” failiņš. Iepriekš pie Apache instalācijas rakstīju, ka “hosts” fails atrodas C:Windows direkotrijā. Uz NT tipa sistēmā šis fails atrodas C:WINNTsystem32driversetc direktorijā jeb %windows% instalācijas direktorijā un tālāk pa zaru uz leju līdz etc direktorijai.

Šis “hosts” fails bija nepieciešams, lai Apache webserverim varētu iestāstīt, ka jaunizveidotais virtuālais hosts – http://kautkas.baigi.kruts atrodas uz mūsu datora lokālās IP adreses 127.0.0.1.

127.0.0.1 kautkas.baigi.kruts

Tā arī bija vienīgā atšķirība starp Windows 9x un NT tipa OS.

Ar Apache tā kā būtu tikuši skaidrībā, tagad vēl derētu piešķilt arī PHP kā moduli. Atšķirībā no iepriekš aprakstītā varianta, mēs neko neinstalēsim, bet gan vienkārši iekopēsim vajadzīgos .dll failiņus attiecīgajās direktorijās un pastāstīsim par to arī Apache konfigurācijas failam.

Daudzi izstrādātāji pieturas pie tām pašām unix sistēmas direktoriju struktūrām.
/usr/local/apache/
Tas, lai būtu pašiem vienkāršāk. Man tas pats uz Windows kastes atrodas uz e:usrlocalapache
Tāpēc pieturēšos pie šīs pašas loģikas un arī PHP moduļus likšu līdzīgā direktorijā.

e:usrlocalphp

Šī direktorija būs vēlāk jānorāda Apache konfigurācijas failā httpd.conf, lai Apache zinātu, kur meklēt PHP moduļus. Tagad mums vajadzēs iekopēt pašus PHP moduļus. Tos var atrast iekš http://lv.php.net/downloads.php zem Windows Binaries. Mūs interesē lielā ZIP paka, kas uz doto brīdi ir php-4.3.1-Win32.zip. Drīzumā šis cipars nomainīsies, bet lietas būtība no tā nemainās. Kā jau pamanījāt, tad šis arhīvs ir gandrīz 5 reizes lielāks nekā parastais instalācijas fails. Tas ir tāpēc, ka arhīvā ir iekļauti visi iespējamie moduļi kurus var izmantot, bet instalācijas failā ir tikai pamatiespējas, lai funkcionētu PHP skripti.

Atverot šo arhīvu pirmais fails, kas varētu noderēt ir “install.txt” fails. Tas būs gadījumam, ja nebūsiet neko sapratuši no tā, ko es te sarakstīju vai arī būs vēlme iet tālāk un eksperimentēt ar citiem moduļiem. Ja kāds atbild RTFM uz jautājumu par to kā uzinstalēt PHP, tad šo maģisko burtu skaidrojums, šajā gadījumā, slēpjas tieši iekš “install.txt” faila.

Vajadzīgie faili atrodas arhīvā zem direktorijas “php-4.3.1-Win32extensions”. Sākumā varētu pamēģināt iekopēt pāris moduļus:
 
php4apache.dll – pats PHP 4 modulis priekš Apache webservera
php4ts.dll – arī vajadzīgs fails bez kura iepriekšējais nefunkcionēs
php_gd2.dll – šis ir GD modulis, kas paredzēs darbam ar grafiskiem failiem. Sākot ar PHP 4.3.0 šajā modulī ir iekļauts arī GIF failu lasīšanas atbalsts.

Iesākumam es domāju, ka pietiks. Man vēl ir sakrāmēta kaudze ar moduļiem, bet tos var arī vēlāk pielikt klāt.
Lai viss darbotos dažiem moduļiem ir nepieciešami vēl papildus .dll faili, kas atrodas arhīva direktorijā “php-4.3.1-Win32dlls”.
Ja nu gadījumā pietrūks kāds .dll fails, tad izleks attiecīgs paziņojums par to.

Tagad ir pienācis laiks pierakstīt Apache konfigurācijas failā, kur atrodas PHP moduļi. Jāatver httpd.conf fails un tāpat kā iepriekš pie parastās PHP instalācijas ir jāpievieno dažas rindiņas.

########################
# And for PHP 4.x, use: #
########################
AddType application/x-httpd-php .php .php3
#AddType application/x-httpd-php-source .phps

# ScriptAlias /php/ "e:/usr/local/php/"
# Action application/x-httpd-php "/php/php.exe"
LoadModule php4_module e:/usr/local/php/php4apache.dll

Šajā variantā mēs aizkomentējam:

# ScriptAlias /php/ "e:/usr/local/php/"
# Action application/x-httpd-php "/php/php.exe"

bet tā vietā norādam ceļu uz direktoriju kurā iepriekš iekopējām php4apache.dll failu. Manā gadījumā tas ir direktorijā e:usrlocalphp, bet pierakstam ar šķērsvītru uz otru pusi.

LoadModule php4_module e:/usr/local/php/php4apache.dll

Principā, ja tagad palaiž Apache, tad būtu jau jābūt PHP atbalstam. Pārbaudīt to var izveidojot kaut vai index.php failu un ierakstot tur vienu rindiņu:

<?php phpinfo();?>

Ja izlec kāds kļūdas paziņojums, tad tas ir jāizlasa un jāmeklē, kur ir kļūda.

Lai pievienotu citus PHP moduļus kā, piemēram, GD, ko es iepriekš pieminēju, tad tas būs jāaktivē izmantojot “php.ini” failu. Paraugu “php.ini” failam var atrast tajā pašā arhīvā no kurienes mēs ņēmām PHP moduļus. Ieteicamais fails saucas “php.ini-recommended” atveram šo failu un saglabājam ar nosaukumu “php.ini” savā Windows direktorijā. Teiksim man tas ir c:winnt, bet citiem var būt arī c:windows vai vēl kādā citā vietā.

Tagad šajā failā atrodam rindiņu ;Windows Extensions , kurai seko vesela kolonna ar *.dll faliem. Tie visi ir moduļi kurus varētu pievienot, bet mums tas pagaidām nav vajadzīgs. Pietiks, ja atradīsim rindiņu

;extension=php_gd2.dll

un atkomentēsim to. Rezultātā sanāks:

extension=php_gd2.dll

jau bez “;” simbola, kas šajā gadījumā ir PHP konfigurācijas faila komentāru simbols. Saglabājam šo failu un pārstartējam Apache webserveri, ja viss notiek un neizlec nekāds kļūdas paziņojums, tad mums ir paveicies un jaunais modulis ir veiksmīgi pievienots, pretējā gadījumā lasam kļūdas paziņojumu un meklējam, kas pietrūkst pilnai laimei.

Iespējams, ka šo nelielo pamācību kā arī citas daudz sarežģītākas ar laiku varēs atrast php.lv lapā.

Viens komentārs par “Liekam PHP kā moduli Apache webserverī

  1. Ed

    Mazmazliet jautaajums varbuut ne pa teemu, bet, cik noprotu, zem WIN to GD moduli var piemest arii peec tam, bet vai ieksh linux, ja ir nokompileets PHP, peec tam var GD atsevishki iebarot, vai arii jaapaarkompilee?

    Atbildēt
  2. A-tekc

    Es meegjinaaju uz winxp uzlikt php – huju, teoreetiski php gaaja, bet nekaadi nestraadaaja inkluudes. taa arii nesapratu, kur probleema.

    Atbildēt
  3. noisex

    2 A-tekc – ko nozime uzliku -droshvien uzinstaleji binariju un likies mieraa, ja? Nu ja taa, tad nav brinums, ka nekas neiet..lai nu kaa tur butu, saistiba par includiem, tad nu ieksh php.ini ir janorada: include_path = “.;c:phpincludes” …nu ko lai saka lasam rtfm. 🙂

    Atbildēt
  4. jannis

    ai nu tas buutu siikums, bet es neiebraucu kaapeec man apache spiiteejas:
    Cannot load c:/php/sapi/php4apache.dll into server
    bet es tochna zinu ka tas tu ir

    Atbildēt
  5. hu ha

    nu ja runa ir par iesaaceejiem, tad noteikti parastaa instaleeshana ir daudz vienkaarshaaka. un ja kaut kas truukst no standarta, tad var mest klaat .dll.
    Bet nu arii shis variants jaazin:)

    Atbildēt
  6. DaFATE

    daleca par to php4apache.dll failu jaanoraada bija vai nu php4apache.dll vai php4apache2.dll atkariibaa kaada apache un man bija otrais variants, bet akal cita probza
    syntax error uz AddModule mod_php4.c

    Atbildēt
  7. DaFATE

    aizmirsu vien piebilst nez kaapeec man tas nestraadaa??
    saakumaa it kaa taa tabulinja cik aatri paraadiijaas tik aatri pazuda un raadiijaas The page cannot be displayed blaablabla..bet peec laika tabulinja vispaar vairs neraadiijaas uzreiz bija The page cannot be displayed…
    uzraxtot vienalga ko citu php failaa, piem tas atveraas..

    Atbildēt
  8. Nezinis!

    Vai kāds normāls cilvēks var apskaidrot pa soļie un visiem linkiem, kā galu glā uz Windows XP Profssional uztasīt, lai varētu uz PHP programmēt, mēģināju jau kuro reizi NEKĀ no šiem rakstiem vispēr nekādi nesanāk visu daru pa soļiem, bet nu nesaprotu, kur tas suns aprakts. Izstāstiet gudrās galvas kā man atrsināt šo problēmu. Man tas ir ļoti svarīgi!

    Atbildēt

Ieraksti komentāru

Tava e-pasta adrese netiks publicēta.