Microsoft IIS / PWS
Ez a fejezet az IIS (Microsoft Internet Information Server) szerverekre vonatkozó PHP telepítési útmutatókat tartalmazza.
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.
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.