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