Инсталиране на PHP в IIS

Все пак ако Ви се наложи да инсталирате PHP на своята машина и не искате да ползвате Apache или друг добавящ се web server предлагам един лесен и бърз начина за инсталация с прилежащия IIS на Windows XP Pro или 2003. И понеже ми се налага да го правя няколко пъти вече реших да ги драсна тези няколко стъпки та да не чуди човек какви бяха подробностите.

Install PHP5 on IIS 5.1

1) add to path c:\PHP
2) rename php.ini-recomended to php.ini

doc_root = c:\inetpub\wwwroot // for IIS/PWS
doc_root = c:\apache\htdocs // for Apache
extension_dir = "c:\php\ext"
cgi.force_redirect = 0
set browscap to c:\windows\system32\inetsrv\browscap.ini

If you want to use the CGI binary, do the following:

* Under 'Home Directory', 'Virtual Directory', or 'Directory', do the following:
* Change the Execute Permissions to 'Scripts only'
* Click on the 'Configuration' button, and choose the Application Mappings tab. Click Add and set the Executable path to the appropriate CGI file. An example PHP 5 value is: C:\php\php-cgi.exe Supply .php as the extension. Leave 'Method exclusions' blank, and check the 'Script engine' checkbox. Now, click OK a few times.
*

Set up the appropriate security. (This is done in Internet Service Manager), and if your NT Server uses NTFS file system, add execute rights for I_USR_ to the directory that contains php.exe / php-cgi.exe.

To use the ISAPI module, do the following:

* If you don't want to perform HTTP Authentication using PHP, you can (and should) skip this step. Under ISAPI Filters, add a new ISAPI filter. Use PHP as the filter name, and supply a path to the php4isapi.dll / php5isapi.dll.
* Under 'Home Directory', 'Virtual Directory', or 'Directory', do the following:
* Change the Execute Permissions to 'Scripts only'
* Click on the 'Configuration' button, and choose the Application Mappings tab. Click Add and set the Executable path to the appropriate ISAPI DLL. An example PHP 5 value is: C:\php\php5isapi.dll Supply .php as the extension. Leave 'Method exclusions' blank, and check the 'Script engine' checkbox. Now, click OK a few times.
* Stop IIS completely (NET STOP iisadmin)
* Start IIS again (NET START w3svc)
3) add user rights to php directory (IIS user - modify, IUSR_MASNINENAME - read)


Дано да свърши работа!

6 comments:

  1. Много добре си направил,но все пак може да добавиш и за Apache, защото според мен повече хора имат нужда от обяснение за Aapache отколкото за IIS(така си мисля), макар че не знам доколко Aapache е разпространено в USA.Иначе поздрав за инициативата, защото всеки, който интсалира някакъв уеб сървър за първи път доста се лута, докато накрая намери читаво обяснение.

    ReplyDelete
  2. да добавя за лутането-става въпрос за връзката PHP+MySql+Apache. И още нещо- ако искаш да нямаш проблеми apache i mysql може да си инсталирасх линукс. Там лутането е по голямо, но поне си има вградени php apache i mysql(не всички,линукси но повечето имат)

    ReplyDelete
  3. @sandix: Apache e _много_ разпространен в целия свят, а не само в USA, вервай ми. Ако не верваш на мен,(както самият аз не си вярвам) може да повярваш на September 2006 web server survey на NetCraft. Към Септември 2006, Apache заема дял от 61.28%, което е лек спад (-0.77%) спрямо последното проучване от Юни 2006, но мисля, че говори достатъчно. Cheers ;-)

    ReplyDelete
  4. Аз уиндоуските Apache, PHP, MySQL, JS, myphpadmin, Ruby on rails, Tomcat apache и прочие приложения почти ги оправих и учудващото е, че всичко сякаш работи. Инсталирах phpbb2 и wordpress за проба. :)

    Всичко по темата е от полза, тъй че благодаря за горното поустче.

    ReplyDelete
  5. Zdravei,
    spazih vsi4ki stypki po tvoite instrukcii, no taka i ne uspiah da nakaram PHP5 da raboti s IIS 5.1. Rezultatyt e prazen ekran pri opit za otvariane, na koito i da e PHP fail(naprimer sydyrzhast samo phpinfo();). Windows-a e 2000 Server.

    ReplyDelete
  6. Първо се увери, че използваш "?php ?", а не просто "? ?" :-). По подразбиране тази директива не включена. Както и да е - това сигурно си го проверил. Друг често срещан проблем са правата, които изисква IIS за folder access. Когато нагласиш правата на папката, не забравяй да зададеш същите права за подпапки и файлове. Задай го оттук нататък правата в твоята работна папка да се наследяват родителската, която вече си нагласил. Надявам се това да помогне...

    ReplyDelete