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:
- 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ő.
- 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 » https://www.php.net/extra/win32build.zip cÃmrÅ‘l.
- ..a PHP által használt DNS név-feloldó forrását a » https://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).
+--c:\work | | | +--bindlib_w32 | | | | | +--arpa | | | | | +--conf | | | | | +--... | | | +--php-4.x.x | | | | | +--build | | | | | +--... | | | | | +--win32 | | | | | +--... | | | +--win32build | | | | | +--bin | | | | | +--include | | | | | +--lib
Note: 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"
-
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.
Note: 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.