Telepítés Windows rendszerekre

Ez a fejezet a Windows 95/98/Me és a Windows NT/2000/XP rendszerekre történő telepítésekre vonatkozik. A PHP nem működik 16 bites környezetben mint például a Windows 3.1. Bizonyos esetekben a támogatott Windows környezetekre Win32 néven hivatkozunk.

A PHP Windows-ra telepítésének két fő módja van: vagy a kézi vagy a InstallShield telepítővarázslóval történő.

Ha van Microsoft Visual Studio telepítve a rendszereden, akkor megpróbálhatod a PHP-t az eredeti forrásból lefordítani.

Amint sikerült a PHP-t telepítened a Windows-odra, különböző kiterjesztéseket is betölthetsz további funkcionalitások eléréséhez.

Windows InstallShield telepítés

A Windows PHP telepítőprogram letölthető a http://www.php.net/ címről, ez a PHP CGI változatát telepíti is beállítja az IIS, PWS és Xitami szervereket is (ha ilyet használsz). Azt is vedd figyelembe, hogy az InstallShield telepítőprogrammal nagyon könnyű életre kelteni a PHP-t, de ez nagyon sok szempontból korlátozott változat, például a kiterjesztések automatikus telepítését nem végzi el.

Először telepítsd a választott szervert a gépedre, és ellenőrizd, hogy jól működik-e.

Futtassd a telepítő exe fájlt, és kövesd a varázsló által adott utasításokat. Kétféle telepítés közül választhatsz - a standard telepítés jól használható alapbeállításokat ad, az advanced kérdéseket tesz fel (, amelyekre tudni kell válaszolni :) .

A telepítés varázslója elég információt gyűjt ahhoz, hogy elvégezhesse a php.ini fájl beállítását és konfigurálja a szervert a PHP számára. IIS esetén, vagy NT Workstation alatt PWS használatakor az összes ponton fellelhető script map beállítást megmutatja, és kiválaszthatod, hogy mely pontokra kerüljön be a PHP támogatás.

Mikor a telepítés befejeződött, a varázsló informál arról, hogy szükséges-e a rendszer, ill. a szerver újraindítása, vagy rögtön elkezdheted a munkát a PHP-vel.

Figyelem

Légy tekintettel arra, hogy a PHP ezen telepítési módja nem biztonságos. Ha biztonságos PHP-ra vágysz, akkor jobban teszed, ha a kézikönyv további fejezeteit is elolvasod, és minden beállítást körültekintően elvégzel. Ez az automatikus telepítő egy azonnal használható PHP-t varázsol a gépedre, de nem online szerverekre szánták.

Kézi telepítés lépései

Ez a fejezet segít a PHP kézi telepítésében és Windows-os webszerverek konfigurálásában. A zippelt bináris disztribuciót kell letölteni ehhez a http://www.php.net/ címről. Ezt az útmutatót eredetileg Bob Silva készítette. Az eredeti verzió angolul megtalálható a http://www.umesd.k12.or.us/php/win32install.html.

Ez a leírás a következő szerverek manuális PHP telepítését fedi le:

A Windows-os PHP4 disztribúciók kétféle formában kaphatók - CGI futtató (php.exe) és számos SAPI modulként (például php4isapi.dll). Az utóbbi elég új a PHP 4-ben, és jelentős teljesítményjavulást és néhány új lehetőséget biztosít az előzőhöz képest.

Figyelem

Mindazonáltal, figyelj arra, hogy a SAPI modulok NEM tekinthetők még kész minőségűnek. Különösen az ISAPI modul használatakor valószínűleg súlyos megbízhatósági problémákkal fogsz találkozni főleg Win2K-nál régebbi környezetekben. Tanúja lehetsz számos 500-as kódú szerver hibának és néhány más gyenge modultól is szenvedhetsz. Figyelmeztettünk!

Ennek az az oka, hogy a SAPI modulokban a PHP újdonsült "szál-biztos" (thread-safe) változata fut, amelyet még nem teszteltek és nyúztak eleget ahhoz, hogy teljesen stabilnak nyilvánítsák, és tartalmaz néhány ismert hibát is. Másrészről, néhányan nagyon jó eredményekről számoltak be a SAPI modulok használata kapcsán, még akkor is ha, ha jelen pillanatban nem tudunk arról, hogy bárki is üzemelő webhelyén ezeket használná. Röviden: ha abszolút stabilitás kell, akkor a CGI változat stabilitása és a SAPI modulok teljesítménybeli különbsége közt kell döntened.

Ha Windows 95 alatt akarod használni valamelyik SAPI modult, akkor győződj meg arról, hogy letöltötted a DCOM frissítést a Microsoft DCOM oldaláról. ISAPI modulokhoz, egy ISAPI 4.0-képes Web szerverre lesz szükséged (IIS 4.0, PWS 4.0 és IIS 5.0 alatt tesztelve). IIS 3.0 NEM használható. Elképzelhető, hogy le kell töltened és telepítened a Windows NT 4.0 Option Pack with IIS 4.0-t, ha natív PHP támogatást akarsz.

A következő lépéseket minden telepítés esetén a szerver specifikus beállítások előtt kell végrehajtani.

Fordítás forrásból

Mielőtt belevágunk, érdemes megválaszolni azt a kérdést, hogy: "Miért olyan nehéz lefordítani 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.

Előkészületek

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

  • Kezdőknek, Cygwin toolkit-et a legközelebbi cygwin tüköroldalról. A nagyon sok közkedvelt GNU segédprogramot tartalmaz, amelyek szükségesek a PHP létrehozásához.

  • A maradék eszközöket töltsd le a PHP oldaláról: http://www.php.net/extra/win32build.zip.

  • A PHP által használt DNS név-feloldó forrását is szerezd be a http://www.php.net/extra/bindlib_w32.zip címről. Ez a win32build.zip könyvtárbeli resolv.lib helyett kell.

  • Ha még nincs zip-et kicsomagoló segédprogramod, akkor szükséged lesz egyre. Egy ingyenes: InfoZip.

Végül kell, ugye, maga a PHP 4 forrása. A legutolsó fejlesztői változatra a szert tehetsz anonim CVS-t használva. Ha a snapshot-ot vagy source tarolt változatokat töltöd le, akkor azokat nemcsak untar-olni és ungzip-elni kell, de minden szimpla soremelést CR + LF -re kell cserélned a *.dsp és *.dsw fájlokban, mielőtt hozzálátnál használni őket a Microsoft Visual C++ -ban.

Megjegyzés: Rakd a Zend és TSRM könyvtárakat a php4 könyvtáron belülre, hogy a létrehozási lépések során megtalálja ezeket a fordító.

Az egész összerakása

  • Kövesd az általad választott unzip kitömörítő program telepítési lépéseit.

  • Indítsd el a setup.exe-t, és kövesd az ott leírtakat. Ha c:\cygnus útvonaltól eltérő helyre akarod telepíteni, akkor a be kell állítani a Cygwin környezeti változót arra a könyvtárra. Windows 95/98 esetén a környezeti változó beállítása történhet az autoexec.bat fájlban is, Windows NT esetén pedig, a My Computer => Control Panel => System párbeszédablakban válaszd ki az Environment nevű panelt.

    Figyelem

    Csinálj egy ideiglenes könyvtárat a Cygwin-nek, máskülönben sok parancs (különösen a bison) sikertelen lesz. Windows 95/98 esetén mkdir C:\TMP, Windows NT esetén mkdir %SystemDrive%\tmp.

  • Tömörítsd ki a win32build.zip fájlt egy könyvtárba.

  • Indítsd el a Microsoft Visual C++ -t, és válaszd ki a menüből a Tools => Options pontot. A párbeszédablakban válaszd ki a Directories panelt. Sorjában a legördülő listából válaszd ki az Executables, az Includes és Library files pontokat és győződj meg róla, hogy a hozzájuk tartozó listákban szerepel-e a cygwin\bin, win32build\include illetve win32build\lib. (A listához hozzáadni úgy kell, hogy a lista végén lévő üres sorra állsz, és elkezdesz gépelni.) Egy jellegzetes listabejegyzések valahogy így mutatnak:

    • c:\cygnus\bin

    • c:\php-win32build\include

    • c:\php-win32build\lib

    Nyomd le OK gombot, és lépj ki a Visual C++ -ból.

  • Csinálj egy másik könyvtárat, ahová kitömöríted a bindlib_w32.zip-et. El kell döntened, hogy hibakereső szimbólumokkal (debug symbol) (bindlib - Win32 Debug) vagy anélkül (bindlib - Win32 Release) akarod fordítani a PHP-t. Állítsd be a megfelelő konfigurációt:

    • GUI -t használóknak: indítsd el a VC++ -t, nyisd meg a bindlib munkaterületetet (File => Open Workspace és válaszd ki a bindlib-et). Ezután: Build=>Set Active Configuration, és válaszd ki a kívánt konfigurációt, és végül: Build=>Rebuild All.

    • Parancssoros módban győződj meg arról, hogy a szükséges C++ környezeti változók legyenek beállítva vagy vcvars.bat le lett-e futtatva, és aztán add ki valamelyik alábbi parancsot:

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

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

    • Ezen a ponton vagy a Debug vagy a Release alkönyvtárban kell, hogy legyen egy használható resolv.lib. Másold ezt rá a win32build\lib könyvtárban található ugyanilyen nevű fájlra.

Fordítás

A kezdésként legjobb egy önálló/CGI verziót fordítani.

  • GUI -t használóknak: indítsd el a VC++ -t, nyisd meg a php4ts munkaterületetet (File => Open Workspace és válaszd ki a php4ts-t). Ezután: Build=>Set Active Configuration, és válaszd ki a kívánt konfigurációt, és végül: Build=>Rebuild All.

  • Parancssoros módban győződj meg arról, hogy a szükséges C++ környezeti változók legyenek beállítva vagy vcvars.bat le lett-e futtatva, és aztán add ki valamelyik alábbi parancsot:

    • 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.

Ismételed meg a fenti lépéseket a php4isapi.dsp-re, amely a sapi\isapi könyvtárban található, ha a PHP-t Microsoft IIS -en akarod használni.

Windows-os kiterjesztések teleőítése

A webszerver és a PHP telepítése után valószínűleg néhány kiterjesztést is telepíteni akarsz. A következő táblázat az elérhető kiterjesztések zömét megtalálod. Megadhatod, hogy mely kiterjesztések töltődjenek be a PHP indulásakor, ha kitörlöd a megjegyzést jelentő pontosvesszőt (;) a 'extension=php_*.dll' mintájú sorok elejéről a php.ini-ben. A szkriptjeidben is betöltheted dinamikusan őket a dl() segítségével.

A PHP 4 kiterjesztések DLL-jei mind 'php_' taggal kezdődnek ( és 'php3_' a PHP 3-éi). Ezáltal megelőzhető a PHP kiterjesztések és az általuk támogatott könyvtárak közti összevisszaság.

Megjegyzés: PHP 4.0.6-ban BCMath, Calendar, COM, FTP, MySQL, ODBC, PCRE, Session, WDDX és XML támogatás be van építve. Semmilyen kiegészítő kiterjesztést nem kell ezek használatához betölteni. Nézd meg a disztribúcióval jövő README.txt vagy install.txt fájlokban a beépített kiterjesztések listáját!

Megjegyzés: Néhány kiterjesztés további DLL-eket igényel a működésükhez. Néhány ezek közül a disztribúciós csomag része, a 'dlls' könyvtárban találod meg ezeket, de van néhány - pl. Oracle (php_oci8.dll) -, amelyhez szükségesek nincsenek a csomagban.

A csomagolt DLL-eket másold a 'dlls' könyvtárból valamilyen, a Windows PATH részét alkotó könyvtárba, a biztonságos helyek:

c:\windows\system ; Windows 9x/Me esetén
c:\winnt\system32 ; Windows NT/2000/XP esetén.

Ha már a rendszeredben ezek installálva vannak, akkor csakis akkor írd felül azokat, ha valami nem az elvártnak megfelelően működik. Mielőtt felülírnád a fájlokat, jó, ha csinálsz róluk biztonsági másolatot vagy átmásolod egy másik könyvtárba őket.

Táblázat 3-1. PHP kiterjesztések Windows alatt

KiterjesztésLeírásMegjegyzés
php_bz2.dllbzip2 tömörítő függvényeknincs
php_calendar.dllNaptár átváltási függvényekPHP 4.0.3 óta beépített
php_cpdf.dllClibPDF függvényeknincs
php3_crypt.dllCrypt függvények-
php_ctype.dllctype féle függvényeknincs
php_curl.dllCURL, Client URL library függvényekszükséges: libeay32.dll, ssleay32.dll (része a disztribúciónak)
php_cybercash.dllCybercash payment függvényeknincs
php_db.dllDBM függvényekellenjavallt, DBA-t használd helyette (php_dba.dll)
php_dba.dllDBA: (dbm jellegű) adatbázis absztrakciós réteg függvényeinincs
php_dbase.dlldBase függvényeknincs
php3_dbm.dllBerkeley DB2 eljáráskönyvtár-
php_domxml.dllDOM XML függvényekszükséges: libxml2.dll (része a disztribúciónak)
php_dotnet.dll.NET függvényeknincs
php_exif.dllEXIF fejlécek olvasása JPEG-bőlnincs
php_fbsql.dllFrontBase függvényeknincs
php_fdf.dllFDF: Forms Data Format függvények.szükséges: fdftk.dll (része a disztribúciónak)
php_filepro.dllfilePro függvényekcsak olvasható hozzáféréssel
php_ftp.dllFTP függvényekPHP 4.0.3 óta beépített
php_gd.dllGD eljáráskönyvtár képkezelő függvényeinincs
php_gettext.dllGettext függvényekszükséges: gnu_gettext.dll (része a disztribúciónak)
php_hyperwave.dllHyperWave függvényeknincs
php_iconv.dllICONV characterset conversionszükséges: iconv-1.3.dll (része a disztribúciónak)
php_ifx.dllInformix függvényekszükséges: Informix eljáráskönyvtárak
php_iisfunc.dllIIS kezelési függvényeknincs
php_imap.dllIMAP POP3 és NNTP függvényekPHP 3: php3_imap4r1.dll
php_ingres.dllIngres II függvényekszükséges: Ingres II libraries
php_interbase.dllInterBase függvényekszükséges: gds32.dll (része a disztribúciónak)
php_java.dllJava extensionszükséges: jvm.dll (része a disztribúciónak)
php_ldap.dllLDAP függvényekszükséges: libsasl.dll (része a disztribúciónak)
php_mhash.dllMhash Functionsnincs
php_ming.dllMing függvények for Flashnincs
php_msql.dllmSQL függvényekszükséges: msql.dll (része a disztribúciónak)
php3_msql1.dllmSQL 1 client-
php3_msql2.dllmSQL 2 client-
php_mssql.dllMSSQL függvényekszükséges: ntwdblib.dll (része a disztribúciónak)
php3_mysql.dllMySQL függvényekPHP 4 óta beépített
php3_nsmail.dllNetscape levelező függvények-
php3_oci73.dllOracle függvények-
php_oci8.dllOracle 8 függvényekszükséges: Oracle 8 kliens eljáráskönyvtárak
php_openssl.dllOpenSSL függvényekszükséges: libeay32.dll (része a disztribúciónak)
php_oracle.dllOracle függvényekszükséges: Oracle 7 client kliens eljáráskönyvtárak
php_pdf.dllPDF függvényeknincs
php_pgsql.dllPostgreSQL függvényeknincs
php_printer.dllPrinter függvényeknincs
php_sablot.dllXSLT függvényekszükséges: sablot.dll (része a disztribúciónak)
php_snmp.dllSNMP get and walk függvényekcsak NT -n!
php_sybase_ct.dllSybase függvényekszükséges: Sybase kliens eljáráskönyvtárak
php_yaz.dllYAZ függvényeknincs
php_zlib.dllZLib tömörítő függvényeknincs