PHP kézikönyv
Előző | 6. Fejezet. Telepítés Windows rendszerekre | Következő

# Fordítás forrásból

Mielőtt belevágunk, érdemes megválaszolni azt a kérdést, hogy: "Miért olyan nehéz a fordítás Windows alatt?". Két indokra vezethető vissza:

1. A Windows (még) nem rendelkezik fejlesztők olyan nagy lélekszámú csapatával, akik szabadon szeretnék megosztani egymás közt forrásaikat. Ennek közvetlen következménye, hogy az ilyen fejlesztésekhez szükséges, elengedhetetlen infrastruktúrális beruházások még nem történtek. Nagyjából a hozzáférhető eszközök mindegyikét Unix alól "hozták át", ezért nem kell meglepődni, ha ez az örökség időnként nagyon szembeötlő.

2. Az itt következő uasítások legtöbbje "csináld és felejtsd el" jellegű, ezért dőlj hátra, és próbáld meg a lehető leghűségesebben követni azokat.

## Követelmények

Ahhoz, hogy a PHP-t lefordítsd, szükséged lesz egy Microsoft fejlesztői környezetre. A Microsoft Visual C++ 6.0-ot ajálnjuk. A letöltött fájlok kicsomagolásához szükséged lesz egy kitömörítő alkalmazásra (pl. Winzip). Ha még nincs unzip programod, letölthetsz egy ingyenes verziót az InfoZip-től.

Mielőtt elkezded, le kell töltened...

- ..a win32 eszközöket a PHP oldaláról a a http://www.php.net/extra/win32build.zip címről.

- ..a PHP által használt DNS név-feloldó forrását a http://www.php.net/extra/bindlib_w32.zip címről. Ez a `win32build.zip`-ban szereplő `resolv.lib` helyettesítője.

- Ha a PHP-t Apache modulként akarod fordítani, szükséged lesz az Apache forrásokra is.

Végül kell maga a PHP 4 forrása. A legutolsó fejlesztői változatra szert tehetsz anonim CVS-t vagy a snapshot-ot használva vagy a legfrissebb forrás tar-t letöltve.

## Az egész összerakása

Miután letöltötted a szükséges csomagokat, ki kell tömörítened egy megfelelő helyre.

- Készíts egy munkakönyvtárat, ahová a kitömörített fájlokat teheted, pl: `C:\work`.

- Készíts egy `win32build` könyvtárat a munkakönyvtárad alá (`C:\work`) és ide csomagold ki a `win32build.zip` fájlt.

- A munkakönyvtáradba (`C:\work`) hozd létre a `bindlib_w32` könyvtárat, majd a `bindlib_w32.zip` ide tömörítsd ki.

- A letöltött PHP forráskódot a munkakönyvtáradba csomagold ki (`C:\work`).

Ezek után a könyvtárstruktúrád így kell kinézzen:

    +--c:\work
    |  |
    |  +--bindlib_w32
    |  |  |
    |  |  +--arpa
    |  |  |
    |  |  +--conf
    |  |  |
    |  |  +--...
    |  |
    |  +--php-4.x.x
    |  |  |
    |  |  +--build
    |  |  |
    |  |  +--...
    |  |  |
    |  |  +--win32
    |  |  |
    |  |  +--...
    |  |
    |  +--win32build
    |  |  |
    |  |  +--bin
    |  |  |
    |  |  +--include
    |  |  |
    |  |  +--lib

Hozd létre a `c:\usr\local\lib` könyvtárakat. Másold a `bison.simple` állományt a `c:\work\win32build\bin`-ből a `c:\usr\local\lib`-be.

> Megjegyzés: A Cygwin-t haszmálók kihagyhatják az legutóbbi lépést. Egy megfelelően telepített Cygwin környezet tartalmazza a szükséges `bison.simple` és `bison.exe` fájlokat.

## Az MVC ++ konfigurálása

A következő lépésben az fordításhoz szükséges MVC ++ -t állítjuk be. Indítsd el a Microsoft Visual C++ -t, majd a menüből válaszd ki a Tools => Options pontot. A párbeszédablakban válaszd a directories fület. A legördülő listából sorjában válaszd ki az Executables, az Includes és Library files pontokat. Egy jellegzetes listabejegyzések valahogy így mutatnak:

- Executable files: `c:\work\win32build\bin`, Cygwin-t használóknak: `cygwin\bin`

- Include files: `c:\work\win32build\include`

- Library files: `c:\work\win32build\lib`

## Build resolv.lib

Le kell fordítanod a `resolv.lib` könyvtárat. Döntsd el, hogy debug szimbólumokkal (bindlib - Win32 Debug) vagy anélkül (bindlib - Win32 Release) szeretnél fordítani. Készítsd el a neked megfelelő konfigurációt:

- Grafikus felületet használóknak: indítsd el a VC++ programot, válaszd ki a File => Open Workspace menüpontot, keresd meg a `c:\work\bindlib_w32` könyvtárat, válaszd ki a `bindlib.dsw`-t. Ezután válaszd a Build=>Set Active Configuration-t, majd add meg a kívánt konfigurációt. Végül válaszd a Build=>Rebuild All menüpontot.

- Parancssort használóknak: bizonyosodj meg arról, hogy a C++ környezeti változók be vannak állítva vagy hogy futtattad a vcvars.bat-ot, majd hajtsd végre a következő parancsokat:

  - `msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"`

  - `msdev bindlib.dsp /MAKE "bindlib - Win32 Release"`

Ezen a ponton kell rendelkezzél egy használható `resolv.lib`-bel akár a `c:\work\bindlib_w32\Debug` akár a `Release` alkönyvtárban. Másold át ezt a fájlt a `c:\work\win32build\lib` könyvtárba, felülírva a már létező ugyanolyan nevű fájlt.

## Fordítás

A kezdésként legjobb egy CGI verziót fordítani.

- Grafikus felületet használóknak: indítsd el a VC++ -t, nyisd meg a php4ts munkaterületetet (File => Open Workspace és válaszd ki a `c:\work\php-4.x.x\win32\php4ts.dsw`-t). Ezután: Build=>Set Active Configuration, és válaszd ki a kívánt konfigurációt, php4ts - Win32 Debug_TS vagy php4ts - Win32 Release_TS, és végül: Build=>Rebuild All.

- Parancssort használóknak: győződj meg arról, hogy a szükséges C++ környezeti változók legyenek beállítva vagy a vcvars.bat le lett futtatva, ezután add ki valamelyik alábbi parancsot a `c:\work\php-4.x.x\win32` könyvtárból:

  - `msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"`

  - `msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"`

  - Ennél a pontnál a `Debug_TS` vagy a `Release_TS` alkönyvtárban kell lennie egy használható `php.exe` fájlnak.

Lehetséges a fordító folyamat kissebb testreszabása a `main/config.win32.h` szerkesztése által. Például megváltoztathatod a `php.ini` helyét, a beépített kiterjesztéseket, valamint a kiterjesztések alapértelmezett helyét.

Ezután készíthetsz egy CLI verziót, ami a PHP parancssorból történő futtatására van tervezve. A lépések hasonlóak a CGI verzió készítésének lépéseihez, kivéve, hogy a php4ts_cli - Win32 Debug_TS vagy a php4ts_cli - Win32 Release_TS projekt fájlt kell kiválasztanod. Egy sikeres fordítás után egy `php.exe`-t kell találnod a `Release_TS\cli\` vagy a `Debug_TS\cli\` könyvtárban.

> Megjegyzés: Ha szeretnél használni PEAR-t és a kényelmes parancssori telepítőt, a CLI-SAPI kötelező. További információért a PEAR-ről és a telepítőről olvasd el a PEAR dokumentációt.

Ahhoz, hogy a PHP-nek a Microsoft IIS-hez történő integrálásához szükséges SAPI modult (`php4isapi.dll`) elkészítsd, a konfigurációdat a `php4isapi-whatever-config`-ra állítsd be, majd fordítsd le a kívánt dll-t.

Előző | Tartalom | Következő
Xitami on Microsoft Windows | Fel | Kiterjesztések telepítése Windows-on