PHP fordítása Windows rendszeren

Default book

Az eddigi legjobb leírás arról, hogyan kell fordítani a PHP forrást és a különböző extension-öket Windowson.

http://phpmaster.com/compiling-php-from-source-on-windows/

Sajnos nincsen a PHP rendszerhez olyan egybegyúrt alkalmazáskészlet, aminek segítségével egyszerűen lehetne fordítani a PHP-t Windows alá, ezért az alkatrészeket különböző helyekről kell letölteni:

Mi kell hozzá?

A PHP forráskódja

A forrást innen lehet letölteni: http://windows.php.net/download/

Figyelni kell a verziószámra! A Thread Safe és a Non Thread Safe kód együtt van. A Microsoft és a Zend közös álláspontja szerint a PHP 5.3.0 óta Windowsra már csak NTS verziójú PHP-t szabad fordítani. A PHP 5.3 óta pedig csak a  VC9-cel lehet fordítani a forráskódot

Az Apache-ból be kell szerezni egy VC9-cel fordított verziót. Az Apache 2.4.xx már ezzel lett lefordítva. ezen kíyvül használhatjuk az IIS-t is. Én nem szeretem.

A C fordító program

A PHP fordításához Windows rendszeren a Visual C megfelelő verziója szükséges. A PHP 5.3-tól már a VC9-re van szükség. ezt le lehet tölteni a Microsoft Visual Studio 8.0, 9.0 és 10.0 rendszerek segítségével.

A Microsoft Visual Express megfelelő verziója tartalmazza a Visual C megfelelő verzióját ingyen. Innen lehet letölteni a Microsoft Visual Express 2010-et.

először telepítsd fel a Visual Studiót

A Windows SDK

Szükség lesz még a windows SDK-ra is, amit innen lehet letölteni.

Ha már telepítetted a Visual Studiót, akkor telepítsd a Windows SDK-t.

A PHP-SDK

Töltsd le innen a Windows php-sdk-t ez tartalmazza azokat az alkalmazásokat, amivel elő lehet készíteni a PHP és a kiterjesztések fordítását és ténylegesen is le lehet fordítani velük a kódot. letöltés innen: http://windows.php.net/downloads/php-sdk

A fordítási csomag összeállítása

  • Készíts egy könyvtárat, mondjuk C:\PHPDEV néven.
  • Ide másold be a forráskódot kicsomagolva
  • Másold be a php-devcsomag tartalmát kicsomagolva és körülbelül ezt kapod:
C:\phpdev
+bin
+deps
+php5.3.xx
+script
+share
  • A Windows SDK Command Prompt-ot nyisd meg és futtasd le az alábbi sorokat:
setenv /release /xp /x86
cd C:\PHP-Dev
bin\phpsdk_setvars.bat

Sajnos Windows 7 esetén a setenv parancs nem létezik, illetve hibásan fut le, ezért én egy Virtuális gépen futó Windows XP-vel tudom fordítani a PHP-t, vagy az alábbiakat kell használni:

C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
cd C:\PHP-Dev
bin\phpsdk_setvars.bat

A phpsdk_setvars.bat további környezeti változókat állít be.

Figyelj arra, hogy ezek a változók csak addig élnek, maíg ez a konzol ablak nyitva van, tehát ne zárd be!

A PHP fordítása

cd C:\PHP-Dev\php5.3.xx
buildconf
configure
nmake
nmake test

Ha valami nem működik, akkor az alábbi problémák lehetnek

1. A környezeted nincs jól beállítva, hiányoznak komponensek

2. Valamilyen külső könyvtárra hivatkozik egy komponens és az nincsen feltelepítve a gépedre.

Ha lefutott az nmake, akkor egy tiszta sz?z PHP bináris fog létrejönni a Release_TS könyvtárban.

Ha egy extensiont akarsz lefordítani, akkor a kiterjesztést tedd az ext könyvtárba, és futtasd az alábbiakat le:

cd C:\PHP-Dev\php5.3.xx
buildconf --force
configure --enable-<modulnév>    ; ebben a formában a PHP-ba fordítja a kódot a program
nmake
nmake test

Ha a kiterjesztést dll-ként akarod fordítani, akkor

cd C:\PHP-Dev\php5.3.xx
buildconf --force
configure --enable-<modulnév>=shared    ; Ekkor dll-ként fordítja a modult a kód
nmake
nmake test

Problémák

A configure parancs után az nmake parancs hibára futott, ha a mysqlnd-t nem vettem ki.

configure --without-mysqlnd futott le

Források és lefordított modulok

Windows XP-n fordítani: http://phpmaster.com/compiling-php-from-source-on-windows/

Windows 7 64 bites rendszeren fordítani: http://tmont.com/blargh/2009/10/compiling-php-on-windows-64-bit-with-vc9

Vista segítségével fordítani: http://blog.astrumfutura.com/2007/12/compiling-php-for-windows-vista-using-visual-c-express-2008-seriously/

lefordított 64 bites release-ek: http://www.anindya.com/php-5-4-5-and-php-5-3-15-x64-64-bit-for-windows/

Windows alá fordított kiterjesztések: http://downloads.php.net/pierre/

Windows 64 bites kiterjesztések: http://www.mediafire.com/php-win64-extensions

Tags