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.
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. |
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:
Personal Web Server (friss verzió javasolt)
Internet Information Server 3 vagy 4
Apache 1.3.x
Omni HTTPd 2.0b1 vagy újabb
Oreilly Website Pro
Xitami
Netscape Enterprise Server, iPlanet
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.
Tömörítsd ki a disztribúciós fájlt egy tetszőleges könyvtárba. A c:\php\ pl. jó választás.
Biztosítanod kell, hogy a PHP az általa használandó DLL-eket meg is találja. Hogy milyen DLL-ekre vonatkozik ez, az függ attól, hogy a milyen webszervert használsz és, hogy azon a PHP modulként vagy CGIüként fog futni. A php4ts.dll minden esetben szükséges. Ha szerver modulként (pl. Apache vagy ISAPI) használod, akkor a sapi alkönyvtárból a megfelelő DLL kell. Hogy ezek a DLL-ek elérhetőek legyenek, bemásolhatod őket a rendszerkönyvtárba (pl. winnt/system32 vagy windows/system), vagy rakd egy könyvtárba a fő PHP állománnyal (pl. php.exe, php4apache.dll).
A PHP bináris, a SAPI modulok és néhány kiterjesztés használata külső DLL-ektől is függ. Bizonyosodj meg róla, hogy ezek a Windows PATH egyik könyvtárában vannak. A legjobb, ha ezeket mind a rendszer könyvtárba másolod, ami általában:
c:\windows\system ;Windows 9x/Me esetén |
c:\winnt\system32 ;Windows NT/2000/XP esetén |
'php4ts.dll', ha már létezik, írd felül |
A disztribúció 'dlls' könyvtárának fájlai. Ha már a rendszeredben ezek installálva vannak, akkor csakis akkor írd felül azokat, ha valami nem 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öltsd le a legfrissebb, a saját platformodnak megfelelő Microsoft Data Access Components (MDAC) csomago(ka)t, különösen ha Microsoft Windows 9x/NT4-t használsz. MDAC elérhető a http://www.microsoft.com/data/ címen.
Másold be a kiválasztott ini fájlt (ld lejjebb) Windows 9x/Me esetén a '%WINDOWS%' könyvtárba vagy Windows NT/2000/XP esetén a '%SYSTEMROOT%' könyvtárba, és nevezd át php.ini-re. A '%WINDOWS%' vagy '%SYSTEMROOT%' könyvtárak: typically:
c:\windows ; Windows 9x/Me esetén |
c:\winnt vagy c:\winnt40 ; NT/2000/XP szerverek esetén |
Két ini fájl került bele a zip-be: php.ini-dist és php.ini-optimized. Azt tanácsoljuk, hogy a php.ini-optimized-t használd, mert azokban az alapértékek úgy kerültek meghatározásra, hogy minél jobb teljesítménnyel és nagyobb védelemben fussanak a programjaid. A legjobb, ha áttanulmányozod az egész ini beállítások fejezetet, és magad határozod meg az összes bejegyzést. Ha a legnagyobb biztonságot szeretnéd eléni, akkor ez a járandó út, bár a PHP ezekkel php.ini-kben megadott alapbeállításokkal is ragyogóan működik.
Szerkeszd át a saját 'php.ini' fájlodat:
Az 'extension_dir' bejegyzést át kell írni, hogy az arra a könyvtárra mutasson, ahol a 'php_*.dll' fájlok vannak, pl.: 'c:\php\extensions'.
Ha OmniHTTPd használsz, akkor a következő lépést hagyd ki. Állítsd be a 'doc_root'-ot, hogy az a webszervered document_root könyvtárára mutasson, például c:\apache\htdocs vagy c:\webroot
Válaszd ki, mely kiterjesztéseket töltse be a PHP induláskor. Nézd át a Windows kiterjesztések c. szakaszt, hogy melyeket kell telepíteni és melyek jönnek együtt a PHP disztribúcióval. Először érdemes tesztelni, hogy működik-e a PHP mindenféle kiterjesztés engedélyezése nélkül is.
PWS és IIS alatt, beállíthatod a browscap.ini fájlt, hogy az Windows 9x/Me esetén mutasson a 'c:\windows\system\inetsrv\browscap.ini'-re és NT/2000/XP Server esetén 'c:\winnt\system32\inetsrv\browscap.ini'-re.
Figyelj, hogy a Windows-os disztribúció mibs könyvtárában SNMP támogatáshoz szükséges fájlok vannak. Ezt a könyvtárat a DRIVE:\usr\mibs-be másold át (DRIVE az a meghajtó, ahová a PHP-t telepítetted.)
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:
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.
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ó.
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.
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.
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:
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.
c:\windows\system ; Windows 9x/Me esetén c:\winnt\system32 ; Windows NT/2000/XP esetén.
Táblázat 3-1. PHP kiterjesztések Windows alatt
Kiterjesztés | Leírás | Megjegyzés |
---|---|---|
php_bz2.dll | bzip2 tömörítő függvények | nincs |
php_calendar.dll | Naptár átváltási függvények | PHP 4.0.3 óta beépített |
php_cpdf.dll | ClibPDF függvények | nincs |
php3_crypt.dll | Crypt függvények | - |
php_ctype.dll | ctype féle függvények | nincs |
php_curl.dll | CURL, Client URL library függvények | szükséges: libeay32.dll, ssleay32.dll (része a disztribúciónak) |
php_cybercash.dll | Cybercash payment függvények | nincs |
php_db.dll | DBM függvények | ellenjavallt, DBA-t használd helyette (php_dba.dll) |
php_dba.dll | DBA: (dbm jellegű) adatbázis absztrakciós réteg függvényei | nincs |
php_dbase.dll | dBase függvények | nincs |
php3_dbm.dll | Berkeley DB2 eljáráskönyvtár | - |
php_domxml.dll | DOM XML függvények | szükséges: libxml2.dll (része a disztribúciónak) |
php_dotnet.dll | .NET függvények | nincs |
php_exif.dll | EXIF fejlécek olvasása JPEG-ből | nincs |
php_fbsql.dll | FrontBase függvények | nincs |
php_fdf.dll | FDF: Forms Data Format függvények. | szükséges: fdftk.dll (része a disztribúciónak) |
php_filepro.dll | filePro függvények | csak olvasható hozzáféréssel |
php_ftp.dll | FTP függvények | PHP 4.0.3 óta beépített |
php_gd.dll | GD eljáráskönyvtár képkezelő függvényei | nincs |
php_gettext.dll | Gettext függvények | szükséges: gnu_gettext.dll (része a disztribúciónak) |
php_hyperwave.dll | HyperWave függvények | nincs |
php_iconv.dll | ICONV characterset conversion | szükséges: iconv-1.3.dll (része a disztribúciónak) |
php_ifx.dll | Informix függvények | szükséges: Informix eljáráskönyvtárak |
php_iisfunc.dll | IIS kezelési függvények | nincs |
php_imap.dll | IMAP POP3 és NNTP függvények | PHP 3: php3_imap4r1.dll |
php_ingres.dll | Ingres II függvények | szükséges: Ingres II libraries |
php_interbase.dll | InterBase függvények | szükséges: gds32.dll (része a disztribúciónak) |
php_java.dll | Java extension | szükséges: jvm.dll (része a disztribúciónak) |
php_ldap.dll | LDAP függvények | szükséges: libsasl.dll (része a disztribúciónak) |
php_mhash.dll | Mhash Functions | nincs |
php_ming.dll | Ming függvények for Flash | nincs |
php_msql.dll | mSQL függvények | szükséges: msql.dll (része a disztribúciónak) |
php3_msql1.dll | mSQL 1 client | - |
php3_msql2.dll | mSQL 2 client | - |
php_mssql.dll | MSSQL függvények | szükséges: ntwdblib.dll (része a disztribúciónak) |
php3_mysql.dll | MySQL függvények | PHP 4 óta beépített |
php3_nsmail.dll | Netscape levelező függvények | - |
php3_oci73.dll | Oracle függvények | - |
php_oci8.dll | Oracle 8 függvények | szükséges: Oracle 8 kliens eljáráskönyvtárak |
php_openssl.dll | OpenSSL függvények | szükséges: libeay32.dll (része a disztribúciónak) |
php_oracle.dll | Oracle függvények | szükséges: Oracle 7 client kliens eljáráskönyvtárak |
php_pdf.dll | PDF függvények | nincs |
php_pgsql.dll | PostgreSQL függvények | nincs |
php_printer.dll | Printer függvények | nincs |
php_sablot.dll | XSLT függvények | szükséges: sablot.dll (része a disztribúciónak) |
php_snmp.dll | SNMP get and walk függvények | csak NT -n! |
php_sybase_ct.dll | Sybase függvények | szükséges: Sybase kliens eljáráskönyvtárak |
php_yaz.dll | YAZ függvények | nincs |
php_zlib.dll | ZLib tömörítő függvények | nincs |