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.

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.

## Általános telepítési szempontok IIS-hez

- Előszöris olvasd el a kézi telepítés lépéseit. Ne hagyd ki ezt a részt mert fontos információkat tartalmaz a PHP Windows-ra való telepítésével kapcsolatban.

- Ha CGI módot használsz, a `php.ini`-ben a cgi.force_redirect PHP direktívát 0-ra kell állítanod. A cgi.force_redirect-el kapcsolatos FAQ-ban fontos információkat találsz. Szintén CGI mód esetén a cgi.redirect_status_env direktívát érdemes beállítani. Amikor direktívákat szeretnál használni vigyázz, hogy ezek a direktívák a `php.ini`-ben ne legyenek kikommentezve.

- A PHP 4 CGI neve `php.exe`, míg PHP 5 esetén `php-cgi.exe`. A PHP 5 esetén, a `php.exe` CLI, és nem CGI.

- A Windows PATH környezeti változójához add hozzá a PHP könyvtárat, így a PHP DLL fájljai, futtatható állományai és a `php.ini` a PHP könyvtárában maradhat, anélkül, hogy a Windows rendszerkönyvtárat fel kellene forgatni. További információért lásd a PATH beállításáról szóló GyIK-ot.

- Az IIS felhasználó (általában IUSR_MACHINENAME) jogosult kell legyen bizonyos fájlok és könyvtárak olvasására, mint például a `php.ini`, docroot, és a munkamenet tmp könyvtára.

- Figyelj oda, hogy a `php.ini`-ben az extension_dir és a doc_root PHP direktívák helyesen legyenek beállítva. Ezen direktívák értéke függ a rendszertől, ahova a PHP-t telepíted. PHP 4-ben az extension_dir `extensions`, míg PHP 5 esetén ez `ext`. PHP 5 esetén az extensions_dir értéke lehet például `"c:\php\ext"`, az IIS doc_root értéke pedig `"c:\Inetpub\wwwroot"`.

- A PHP kiterjesztések DLL állományai, mint például a `php_mysql.dll` és a `php_curl.dll`, a letöltött zip csomagban találhatók meg (nem a PHP telepítőben). PHP 5 esetén sok kiterjesztés a a PECL része, ezért a "PECL modulok gyűjteményéből" tölthetőek le, ilyenek például a `php_zip.dll` és `php_ssh2.dll` állományok. A PHP fájlokat innen töltheted le.

- Amikor megadod a futtatható állományt, jó ha a 'check that file exists' négyzet be van jelölve. Egy kis teljesítménycsökkenéssel az IIS (PWS) meg fogja vizsgálni, hogy a szkript fájl létezik-e, mielőtt meghívja a PHP-t, így a webszerver értelmes 404-es hibákat fog adni, ahelyett, hogy CGI hibákat dobna arról hogy a PHP-től nem kapott kimenetet.

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

A PHP kétféle módon telepíthető, CGI binárisként és 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 végezd el a következőket:

- A Execute Permissions-t (Futtatási jogosultság) állítsd 'Scipts only'-ra ('Csak szkriptek')

- Klikkelj a 'Configuration' gombra, majd válaszd ki az Application Mappings fület. Kattints az Add-ra, majd az Executable path-ot állítsd be a megfelelő CGI fájlra. Egy példa PHP 5 esetén: `C:\php\php-cgi.exe`. Kiterjesztésként .php -t adj meg. A 'Method exclusions' mezőt hagyd üresen, és jelüld be a 'Script engine' négyzetet. Ezután nyomj OK-t néhányszor.

- Á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', 'Virtual Directory', vagy 'Directory' alatt végezd el a következőket:

- A Execute Permissions-t (Futtatási jogosultság) állítsd 'Scipts only'-ra ('Csak szkriptek')

- Klikkelj a 'Configuration' gombra, majd válaszd ki az Application Mappings fület. Kattints az Add-ra, majd az Executable path-ot állítsd be a megfelelő ISAPI DLL-re. Egy példa PHP 5 esetén: `C:\php\php5isapi.dll`. Kiterjesztésként .php -t adj meg. A 'Method exclusions' mezőt hagyd üresen, és jelüld be a 'Script engine' négyzetet. Ezután nyomj OK-t néhányszor.

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

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

IIS 6 esetén (2003 Server), nyisd meg az IIS Manager-t, menj a Web Service Extensions-be, válaszd az "Add a new Web service extension"-t, írj be egy nevet, mint például PHP, válaszd az Add gombot és keresd meg vagy az ISAPI fájlt (`php4isapi.dll` vagy `php5isapi.dll`) vagy pedig a CGI-t (`php.exe` vagy `php-cgi.exe`), majd jelöld be a "Set extension status to Allowed"-et, végül OK.

Ahhoz, hogy az `index.php`-t használja alapértelmezett oldalként, a következőket kell tenned: A Documents fülön, válaszd az Add gombot. Írd be: `index.php` majd OK. Állítsd a sorrendet a Move Up és Move Down gombokkal. Ez hasonló az Apache DirectoryIndex beállításával.

A fenti lépéseket minden olyan kiterjesztésre hajtsd végre, amelyet a PHP szkriptekhez szeretnél rendelni. A .php a legeltejedtebb, bár egyes régi programok esetén szükséges lehet a .php3.

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

## Windows és PWS 4

A PWS 4 Nem támogatja az ISAPI-t, ezért csak a PHP CGI mód használható.

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

## 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 "%s" %s`, PHP 5 esetén pedig `C:\php\php-cgi.exe "%s" %s`.

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

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