PHP kézikönyv
Előző | 6. Fejezet. Telepítés Windows rendszerekre | Következő

# Microsoft IIS / PWS

Ez a fejezet az IIS (Microsoft Internet Information Server) szerverekre vonatkozó PHP telepítési útmutatókat tartalmazza, beleértve a PWS/IIS 3, PWS 4 és újabb és IIS 4 és újabb verziókat.

> CGI-t használók figyelem: A cgi.force_redirect-ről szóló FAQ bejegyzésben fontos információkat találsz. Ez a direktíva 0-ra kell legyen állítva.

Figyelem
Ha a PHP-t CGI felületen dolgoztatod, ez a szervereden bizonyos támadási felületeket nyit. Kérlek, olvasd el CGI biztonság fejezetünket, hogy megtudd, hogy tudod megvédeni magad ezen támadásokkal szemben.

## Windows és PWS/IIS 3

Ezen szervereken a konfigurálás a disztribúciókban szereplő REG fájlok segítségével javasolt (PHP 4 esetén a SAPI könyvtáran szereplő `pws-php4cgi.reg`, PHP 5 esetén pedig a főkönyvtárban szereplő `pws-php5cgi.reg`). Szerkeszd ezt a fájlt, bizonyosodj meg arról, hogy a kiterjesztések és a PHP könyvtár megfelel a konfigurációnak, vagy kövesd az alábbi lépéseket, hogy elkészítsd ezt saját kezűleg.

Figyelem
Az alábbi lépések a windows registry-ben való közvetlen szerkesztést igénylik. Egyetlen hiba használhatatlanná teheti a rendszeredet! Mindenképpen készíts egy biztonsági másolatot, mielőtt bármi mást tennél. A PHP fejlesztői csapata nem tehető felelőssé, ha kárt teszel a registry-ben!

- Indítsd el a Regedit-et.

- Keresd meg a HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap kulcsot.

- Az Edit menüben válaszd ki a New->String Value menüpontot.

- Írd be a fájl kiterjesztést, amit használni szeretnél, pl. .php

- Klikkelj kétszer az új értékre és írd be a `php.exe` elérési útját, PHP 4 esetén például `C:\php\php.exe`, PHP 5 esetén pedig `C:\php\php-cgi.exe`.

- Ismételd ezeket a lépéseket az összes kiterjesztésre, amit PHP szkripthez szeretnél használni.

A következő lépések nem befolyásolják a web szerver üzembehelyezését, és csak akkor van rá szükség, ha a php szkriptjeidet parancssorból is szeretnéd futtatni (pl. `c:\myscripts\test.php`) - vagy a fájlkezelőben duplakattintásra elindítani azokat. Ugord át ezeket a lépéseket, ha azt akarod, hogy duplakattintásra inkább a szövegszerkesztődbe töltődjenek be a PHP szkriptek.

- Keresd meg a: HKEY_CLASSES_ROOT kulcsot.

- Az Edit menüben válaszd a New->Key menüpontot.

- Nevezd el az új kulcsot az előzőekben megadott kiterjesztés nevére, pl. .php

- Válaszd ki az új kulcsot, aztán a jobb oldalon kattints kétszer a "default value" soron, és írd be, hogy phpfile.

- Ismételd az utóbbi lépést az összes kiterjesztésre, amit az előző részben beállítottál.

- Most hozz létre ismét egy új kulcsot (New->Key) a HKEY_CLASSES_ROOT alatt, és nevezd el phpfile-ra.

- Válaszd ki az új phpfile kulcsot, aztán a jobb oldalon kattints kétszer a "default value" sorra, és írd be, hogy PHP Script.

- Kattints jobb gombbal a phpfile kulcsra és válaszd ki a New->Key menüpontot. Nevezd az új kulcsot Shell-nek.

- Kattints jobb gombbal a Shell kulcsra és válaszd ki a New->Key menüpontot. Nevezd az új kulcsot open-nek.

- Kattints jobb gombbal az open kulcsra és válaszd ki a New->Key menüpontot. Nevezd az új kulcsot command-nak.

- Válaszd ki az új command kulcsot, aztán a jobb oldalon kattints kétszer a "default value" soron, és írd be a php.exe elérési útját, pl. c:\php\php.exe -q %1. Ne felejtsd el a %1-et!

- Lépj ki a Regedit-ből.

- Ha Windows alatt PWS szervert használsz, indítsd újra a gépet, hogy újratöltse a rendszer a registry-t.

PWS és IIS 3 használók így már rendelkeznek egy teljesen funkcionális rendszerrel. IIS 3 használóknak ajánlható Steven Genusa ötletes script map konfiguráló eszköze.

## Windows és PWS 4 vagy újabb

Kétféle módon lehet a PHP-t 4-es vagy újabb verziójú PWS-hez installálni: ez egyik a CGI bináris, a másik az ISAPI modul-DLL használata.

Ha a CGI változat mellett döntesz, akkor:

- Szerkeszd át a csatolt `pws-php4cgi.reg` / `pws-php5cgi.reg` fájlt (PHP 4 esetén a SAPI könyvtárban, PHP 5 esetén pedig a főkönyvtárban), hogy abban a `php.exe` / `php-cgi.exe` fájlra való hivatkozás a telepítésnek megfelelő legyen. A visszaperjeleket meg kell előzze egy maásik visszaperjel, pl.: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\php.exe" (PHP 5 esetén C:\\php\\php-cgi.exe). Most olvaszd be a registry fájlt a rendszerbe, például klikkelj rá kétszer.

- A PWS Manager-ben, egy jobbegérgomb kattintás arra a könyvtárra, amelyhez PHP támogatást szeretnél rendelni, és válaszd ki a Properties menüpontot. Jelöld be az 'Execute' négyzetet, és nyomd meg az OK-t.

Ha ISAPI modulként akarod használni, akkor:

- Szerkeszd át a csatolt `pws-php4isapi.reg` fájlt (sapi könyvtár), hogy abban a php4isapi.dll-re hivatkozás az installációnak megfelelő legyen. A perjeleket meg kell előzze egy maásik visszaperjel, pl.: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="c:\\php\\sapi\\php4isapi.dll" Szerkeszd át a csatolt `pws-php4isapi.reg` / `pws-php5isapi.reg` fájlt (PHP 4 esetén a SAPI könyvtárban, PHP 5 esetén pedig a főkönyvtárban), hogy abban a `php4isapi.dll` / `php5isapi.dll` fájlra való hivatkozás a telepítésnek megfelelő legyen. A visszaperjeleket meg kell előzze egy maásik visszaperjel, pl.: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\sapi\\php4isapi.dll" (PHP 5 esetén C:\\php\\php5isapi.dll). Most olvaszd be a registry fájlt a rendszerbe, például klikkelj rá kétszer.

- A PWS Manager-ben, egy jobbegérgomb kattintás arra a könyvtárra, amelyhez PHP támogatást szeretnél rendelni, és válaszd ki a Properties menüpontot. Jelöld be az 'Execute' négyzetet, és nyomd meg az OK-t.

## Windows NT/2000/XP és IIS 4 vagy újabb

Ha a PHP-t egy NT/2000/XP szerveren futó az IIS-nek 4-es vagy újabb verziójájoz akarod telepíteni, kövesd az alábbi utasításokat. Kétféle módon telepítheted, CGI binárisként (PHP 4 esetén `php.exe`, PHP 5 esetén pedig `php-cgi.exe`) vagy ISAPI modulként.

Mindkét esetben el kell indítanod a Microsoft Management Console programot (lehet 'Internet Services Manager', a Windows NT 4.0 Option Pack ágban vagy a Control Panel=>Administrative Tools-ban Windows 2000/XP alatt). Majd jobbklikk a Web szerver csomópontra (ami valószínűleg 'Default Web Server'-ként jelenik meg), majd válaszd ki a 'Properties' menüpontot.

Ha a CGI binárist szeretnéd használni, akkor:

- A 'Home Directory', 'Virtual Directory', vagy 'Directory' alatt klikkelj a 'Configuration' gombra, majd lépj az App Mappings fülre.

- Klikkelj az Add-ra, majd az Executable dobozba írd be: C:\php\php.exe (PHP 4 esetén) C:\php\php-cgi.exe (PHP 5 esetén), feltéve, hogy a PHP-t a `C:\php\`-be zippelted ki.

- Az Extension dobozba írd be azt a fájlnév-kiterjesztést, amelyet a PHP szkriptekhez kívánsz rendelni. A 'Method exclusions'-t hagyd üresen, a 'Script engine' pedig kapcsolt be. Szintén bekapcsolhatod a 'check that file exists'-et kisebb lassulás árán. Ebben az esetben az IIS (vagy PWS) megvizsgála, hogy a szkript fájl létezik-e, ezzel érvényesítést végezne még mielőtt a PHP-t elindítaná. Ez azt jelenti, hogy értelmes 404 stílusú hibát fog adni ahelyett, hogy CGI hibával térjen vissza amiatt, hogy a PHP nem adott semmilyen kimenetet.

  Az utóbbi lépést újra végre kell hajtanod minden további kiterjesztésre, amelyet szeretnél a PHP szkriptekhez rendelni. A .php és a .phtml elég általánosak, viszont a .php3 is szükséges lehet a régebbi alkalmazások futtatásához.

- Állíts be megfelelő védelmet. Ez az Internet Service Manager-ben megvan, és ha az NT szervered NTFS fájlrendszert használ, adj futtatási jogot I_USR_ számára ara a könyvtárra ahol a `php.exe` / `php-cgi.exe` található.

Ha ISAPI modulként akarod használni, akkor:

- Ha nem szeretnél PHP segítségével HTTP Autentikáviót végezni, hagyd ki ezt a lépést. Az ISAPI Filters alatt, hozz létre egy új ISAPI filtert. A filter neve legyen PHP, majd add meg a `php4isapi.dll` / `php5isapi.dll` fájl útvonalát.

- A 'Home Directory' alatt klikkelj a 'Configuration' gombra. Hozz létre egy új bejegyzést az Application Mappings-be. Használd a `php4isapi.dll` / `php5isapi.dll` fájl útvonalát az Executable-nél, írj .php-t a extension-hez, a 'Method exclusions'-t hagyd üresen, végül a 'Script engine'-t kapcsold be.

- Állítsd le teljesen az IIS-t (NET STOP iisadmin)

- Indítsd el újra az IIS-t (NET START w3svc)

Ha egy idő után 100%-os CPU kihasználtságot észlelsz, kapcsold ki a Cache ISAPI Application IIS beállítást.

Előző | Tartalom | Következő
ActiveScript | Fel | Apache 1.3.x Microsoft Windows-on