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