Forum und email

Microsoft IIS / PWS

Ez a fejezet az IIS (Microsoft Internet Information Server) szerverekre vonatkozó PHP telepítési útmutatókat tartalmazza.

Warning

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.

Warning

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.