downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ActiveScript> <Instalador para Windows (PHP 5.2 ou posterior)
Last updated: Fri, 13 Nov 2009

view this page in

Passos da Instalação Manual

Esse guia de instalação ajudará você a instalar manualmente e configurar o PHP com um servidor web no Microsoft Windows. Para começar, você precisará baixar o zip com a distribuição binária da página de downloads em » http://www.php.net/downloads.php.

Embora existam muitos kits de instalação "completos", e nós também distribuímos um instalador do PHP para o Microsoft Windows, nós recomendamos que você se dê ao trabalho de instalar o PHP manualmente uma vez que isso lhe permitirá um melhor entendimento do sistema, e permite que você instale extensões do PHP facilmente quando precisar.

Nota: Atualizar uma versão instalado do PHP
Edições anteriores do manual sugeriam mover vários arquivo ini e DLL para o seu diretório SYSTEM (ex.: C:\WINDOWS) e, embora isso simplifique o processo de instalação, torna a atualização difícil. Nós aconselhamos que você remova esses arquivos (como php.ini e DLLs relacionadas ao PHP da pasta SYSTEM do Windows) antes de continuar com uma instalação nova do PHP. Assegure-se de fazer um backup desses arquivos já que você pode corromper o sistema inteiro. O arquivo php.ini da versão anterior a que você quer instalar pode ser útil na versão nova. E, como você aprenderá a seguir, o método preferido para instalar o PHP é manter todos os arquivos relacionados ao PHP em um diretório e disponibilizar esse diretório no PATH do seu sistema.

Nota: Requerimentos MDAC
Se você usa o Microsoft Windows 98/NT4, baixe a última versão do Microsoft Data Access Components (MDAC) para sua plataforma. MDAC está disponível em » http://msdn.microsoft.com/data/. Esse requerimento existe porque ODBC é compilado nos binários distribuídos para o Windows.

Os passos a seguite devem ser completados em todas as instalações antes de qualquer instruções específicas ao servidor sejam feitas:

Extraia o arquivo da distribuição no diretório de sua escolha. Se você estiver instalando o PHP 4, extraia em C:\, uma vez que o arquivo zip expande para uma pasta de nome parecido com php-4.3.7-Win32. Se você estiver instalando o PHP 5, extraia em C:\php já que o arquivo zip não expande como no PHP 4. Você pode escolher uma localização diferente, desde que não tenha espaços no caminho (como C:\Program Files\PHP) já que alguns servidores web irão travar se tiver.

A estrutura de diretório extraida do zip é diferente para as versões 4 e 5 e se parecem com as seguintes:

Exemplo #1 Estrutura de diretório para o PHP 4


c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- executável CLI - Só para uso na linha de comando.
   |
   +--dlls                -- DLLs de suporte, necessárias para algumas extensões
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- DLLs de extensões para o PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- arquivos de suporte para SNMP
   |
   +--openssl             -- arquivos de suporte para Openssl
   |
   +--pdf-related         -- arquivos de suporte para PDF
   |
   +--sapi                -- DLLs de SAPI (suporte a módulo de servidor)
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-..
   |
   +--PEAR                -- cópia inicial do PEAR
   |
   |
   |-go-pear.bat          -- script de configuração do PEAR
   |
   |-..
   |
   |-php.exe              -- executável CGI
   |
   |-..
   |
   |-php.ini-dist         -- configurações padrão do php.ini
   |
   |-php.ini-recommended  -- configurações recomendadas do php.ini
   |
   |-php4ts.dll           -- DLL núcleo do PHP
   |
   |-...

Ou:

Exemplo #2 Estrutura de diretório para o PHP 5


c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib
   |
   +--ext                 -- DLLs de extensões para o PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--extras
   |  |
   |  +--mibs             -- arquivos de suporte para SNMP
   |  |
   |  +--openssl          -- arquivos de suporte para Openssl
   |  |
   |  +--pdf-related      -- arquivos de suporte para PDF
   |  |
   |  |-mime.magic
   |
   +--pear                -- cópia inicial do PEAR
   |
   |
   |-go-pear.bat          -- script de configuração do PEAR
   |
   |-fdftk.dll
   |
   |-..
   |
   |-php-cgi.exe          -- executável CGI
   |
   |-php-win.exe          -- executa scripts sem um prompt de comando aberto
   |
   |-php.exe              -- CLI executável - Só para uso em linha de comando
   |
   |-..
   |
   |-php.ini-dist         -- configurações padrão do php.ini
   |
   |-php.ini-recommended  -- configurações recomendadas do php.ini
   |
   |-php5activescript.dll
   |
   |-php5apache.dll
   |
   |-php5apache2.dll
   |
   |-..
   |
   |-php5ts.dll           -- DLL núcleo do PHP
   |
   |-...

Note as diferenças e similaridades. Tanto o PHP 4 quanto o 5 tem um executável CGI, um executável CLI, e módulos do servidor, mas eles estão localizados em pastas diferentes e/ou tem nomes diferentes. Enquanto no PHP 4 os módulos do servidor estão na pasta sapi, no PHP 5 não há tal diretório e, ao invés disso, eles estão na pasta principal do PHP. As DLLs de suporte para as extensões do PHP 5 também não estão em um diretório separado.

Nota: No PHP 4, você deve mover todos os arquivos localizados nas pastas dll e sapi para a pasta principal (ex.: C:\php).

Aqui está uma lista dos módulos de servidor liberados com o PHP 4 e PHP 5:

  • sapi/php4activescript.dll (php5activescript.dll) - ActiveScript engine, permitindo imbutir PHP em aplicações Windows.

  • sapi/php4apache.dll (php5apache.dll) - Módulo do Apache 1.3.x.

  • sapi/php4apache2.dll (php5apache2.dll) - Módulo do Apache 2.0.x.

  • sapi/php5apache2_2.dll - Módulo do Apache 2.2.x.

  • sapi/php4isapi.dll (php5isapi.dll) - Módulo do ISAPI para servidores que suportam ISAPI como IIS 4.0/PWS 4.0 ou superior.

  • sapi/php4nsapi.dll (php5nsapi.dll) - Módulo dos servidores Sun/iPlanet/Netscape.

  • sapi/php4pi3web.dll (não tem equivalente no PHP 5) - Módulo do servidor Pi3Web.

Módulos de servidor tem performance significativamente melhor e funcionalidades adiconais comparados com o binário CGI. A versão CLI é desenhada para permitir usar o PHP para scripts de linha de comando. Mais informação sobre CLI disponível no capítulo sobre usando PHP da linha de comando.

Aviso

Os módulos SAPI foram melhorados significativamente a partir do release 4.1, no entanto, em sistemas mais antigos, você pode encontrar erros de servidor e outros módulos do servidor podem falhar, como ASP.

Os binários CGI e CLI, e os módulos de servidor web todos necessitam do arquivo php4ts.dll (php5ts.dll) para funcionar corretamente. Você tem que assegurar que esse arquivo pode se encontrado pela sua instalação do PHP. A ordem de busca para essa DLL é como segue:

  • O mesmo diretório onde o arquivo php.exe é chamado, ou no caso de usar um módulo SAPI, o diretório do servidor web (ex.: C:\Program Files\Apache Group\Apache2\bin).

  • Qualquer diretório no na sua variável de ambiente PATH do Windows.

Para disponibilizar php4ts.dll / php5ts.dll você tem três opções: copiar o arquivo para o diretório system do Windows, copiar o arquivo para o diretório do servidor web, ou adicionar o diretório do PHP, C:\php no PATH. Para melhor manutenção, nós aconselhamos que você siga a última opção, adicione C:\php ao PATH, porque é mais simples atualizar o PHP no futuro. Leia mais sobre como adicionar o diretório ao PATH no FAQ correspondente (e então, não esqueça de reiniciar o computador - fazer o logoff não é suficiente).

O próximo passo é montar um arquivo de configuração para o PHP, php.ini. Existem dois arquivos ini distribuídos no arquivo zip, php.ini-dist e php.ini-recommended. Nós aconselhamos que você use php.ini-recommended, porque nós otimizamos as configurações padrões nesse arquivo para performance e segurança. Leia esse arquivo bem documentador cuidadosamente porque ele tem diferenças em relação a php.ini-dist que afetarão drasticamente sua configuração. Alguns exemplos são display_errors está off e magic_quotes_gpc está off. Além de ler isso, estude as configurações ini e configure cada elemento manualmente. Se você quiser alcança o máximo de segurança, então essa é a maneira que você deve fazer, embora o PHP funcione bem com os arquivos padrões. Copie o seu arquivo ini preferido para um diretódio que o PHP possa encontrar e renomei para php.ini. PHP procura pelo arquivo php.ini nas localidades descritas nessa O arquivo de configuração seção.

Se você estiver executando o Apache 2, a opção mais simples é usar a diretiva PHPIniDir (leia a página instalação no Apache 2). Caso contrário, sua melhor opção é criar a variável de ambiente PHPRC. Esse processo é explicado no seguinte FAQ.

Nota: Se você estiver usando NTFS no Windows NT, 2000, XP ou 2003, assegure-se que o usuário executando o servidor web tem permissões de leitura ao seu arquivo php.ini (ex.: faça com que seja lido por Everyone (Todos) ).

Os passos a seguir são opcionais:

  • Edite seu no arquivo php.ini. Se você planeja usar OmniHTTPd, não faça o passo a seguir. Edite o doc_root para apontar para o document_root do servidor web. Por exemplo:

    doc_root = c:\inetpub\wwwroot // para IIS/PWS
    
    doc_root = c:\apache\htdocs // para Apache

  • Selecione as extensões que você quer que sejam carregadas quando o PHP iniciar. Veja a seção sobre extensões no Windows, sobre como configurar uma, e quais já estão integradas. Note que em uma instalação nova, é aconselhável primeiro fazer o PHP funcionar e testá-lo sem extensões e depois habilitá-las no arquivo php.ini.
  • No PWS e IIS, você pode editar a configuração browscap para que ela aponte para: c:\windows\system\inetsrv\browscap.ini no Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini no NT/2000, e c:\windows\system32\inetsrv\browscap.ini no XP. Para um arquivo browscap.ini atualizado, leia o seguinte FAQ.

O PHP agora está configurado no seu sistema. O próximo passo é escolher um servidor web, e habilitá-lo para executar o PHP. Escolha um servidor web da tabela de conteúdos.



add a note add a note User Contributed Notes
Passos da Instalação Manual
cogiate at pobox dot com
03-Nov-2009 08:07
None of the suggestions above worked for me with IIS7, PHP 5.2.11 and Vista Home Premium.  I struggled for many hours trying to manually configure but could *never* get the phpinfo to report the correct location for my php.ini. 

I finally gave up and used the Web Platform installer and voila-- worked without issue (an add-on available from MSFT: http://www.iis.net/extensions/AdministrationPack )

Big things I noticed that the web platform installer did:

1.  it put the php path at the beginning of the Windows path statement.  No idea if this is a big deal but I wondered about it towards the end of my manual struggles and then pow, that's exactly what the automated installer did.

2.  PHPRC variable is not added via the standard windows environment variables but through the FastCGI administration component in Windows IIS (see the IIS link above to get the Admin interface... the Administration add-in for IIS gives you a GUI to config FastCGI).  In IIS:  click on the top level of the hierarchy (machine name) on the left side of the IIS Admin tool.  on the right, get in the features view and double click the FastCGI settings entry.  Then double click on the php-cgi.exe entry and then on the Environment Variables entry.  This is where the Win Platform installer put the variable.  Does it make a diff?  dunno but it's one more brick in the wall which is not mentioned in any manual install steps I see posted on the 'net.

3.  the freakin' Registry entry that is talked about on so many web sites is actually there when you do a Win Platform install.  No one mentioned the complete reg entry (maybe Vista is the complicating factor?) in any winfixitalltohell suggestions I read about on the net.  Reg entries left behind by Win Platform Installer:
HKEY_LOCAL_Machine -> Software -> PHP (2 entries as follows):
a. String, Value Name = InstallDir, Value Data:  <your php install location.  e.g. c:\php\ or c:\program files\php\>
b. String, Value Name = WebServerType, Value Data: iis4FastCGI (again, this is an IIS7 running on Vista, no idea why iis4 is referenced)

hope that helps some poor lost manual installer out there.  what a friggin' nightmare.
rich at corephp dot co dot uk
02-Jul-2009 10:02
The part about adding the Path to the System Environment Variables is different on Vista. On XP you DO need to reboot for the Path change to be picked-up correctly. On Vista however you do not, the change is instant.
dkflbk at nm dot ru
19-Jun-2009 11:46
There is a way to install PHP with nginx-server under windows (current version is 0.7.60)

Step-1 (install nginx server)
Just extract nginx-0.7.60.zip in C:\nginx-0.7.60

In C:\nginx-0.7.60\conf\nginx.conf uncomment and edit following lines

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  C:/nginx-0.7.60/html$fastcgi_script_name; #this is the one line for edition
            include        fastcgi_params;
        }

and run C:\nginx-0.7.60\nginx.exe (the server is started)

Step-2 (install PHP5)
Just extract php in C:\PHP5

Create (or modify) php.ini

extension_dir="ext/" ;for extensions

And run C:\PHP5\php-cgi.exe -b 127.0.0.1:9000
txyoji
17-Apr-2009 12:36
php 5.1.6 zip package for windows does not include a module for apache2.2.

Use apache2.0.x or 1.3.x instead.
dee at example dot com
04-Feb-2009 07:57
I did a clean install of Apache 2.2 and PHP 5.2.6 due to conflicts with the old httpd.conf file I had and ran into the "Call to undefined function mysql_connect()" error when trying to run a script that connects to MySQL.

To resolve it I had to copy libmysql.dll from my PHP installation directory to the "bin" folder of my Apache install directory.

I checked the forums.mysql.com as someone else suggested which lead me to this site with the missing step I needed (http://www.artfulsoftware.com/php_mysql_win.html). I spent a good part of the afternoon trying set this up. Hopefully it helps someone out.
chhabra_gurpreet at yahoo dot com
11-Jan-2009 05:34
Hi everyone, well i've been trying to configure, install, this setup i.e., Apache, php and mysql, well the prb wat i faced was that most of the installation instructions were quite outdated as they used quite old softwares... well these are the simple steps install and configure this entire setup, hope it will help u....(this is for windows)
Software versions:
Apache - 2.2.11
Mysql -  5.1.30-community
Php - PHP Version 5.2.8

Step 1: Default installation of Apache
Step 2: Default installation of mysql
Step 3: Download php zip file, extract it to ur C: drive under c:\php
Step 4: Add these paths to ur classpath, "C:\php", "C:\php\ext", incase ur installation directory is php, else watever is the name of ur php installation directory use that instead of php
Step 5: Open httpd.conf, that is located in Apache web server installation folder, under conf directory i.e.,
Apache Installation folder > conf > httpd.conf
Add these lines....
>LoadModule php5_module "c:/php/php5apache2_2.dll"
>AddType application/x-httpd-php .php
Step 6: goto php installation directory, there u'll find a file named php-ini-recommended, rename it to, php-ini.
Step 7: Now time to modify php-ini, file... open the file in notepad, look for extension=php_mysql.dll, uncomment it, i.e., delete ";" thats prefixed...also look for "extension_dir=" append "C:\php\ext" incase ur php installation directory is php else "C:\%installation dir%\ext"
Step 8: Copy libmysql.dll to c:\windows\system32

done.......... ;)
philmee95 at gmail dot com
27-Jul-2008 07:52
64 bit windows issues. PHP is 32 bit, and w3svc can only run under 32 or 64...not both. You will have to set 32 bit compat mode.
http://www.iisadmin.co.uk/?p=14
Raafat
15-Jun-2008 09:25
Thanks to the one who pointed to this address:
http://www.peterguy.com/php/install_IIS6.html

it took me 5 minutes to set it up.
supportatradiormidotcom
12-Mar-2008 10:44
Im running Win 2003 PHP 5 with the isapi.dll thanks to this sipmle tutorial hope it will help someone.Cerdit goes to Peterguy.

http://www.peterguy.com/php/install_IIS6.html

Follow the instructions, PHP install made easy
bill at onemeg dot com
19-Feb-2008 09:48
Your PHP.INI file is not required to be in the C:\WINDOWS folder in XP.  The trick is to make sure that the PHP.INI can be found.  If you fail to reboot after adding the PHP folder to the path and creating the PHPRC environment variable, the file will likely not be found.  If you can't reboot, then try creating the registry entries as described in the following document:

http://www.php.net/manual/en/configuration.php

When you execute "phpinfo();" pay special attention to the data returned in "Loaded Configuration File".  If it does not show a path and a the PHP.INI file name, the file is not being loaded.  The path of C:\WINDOWS in the Configuration File Path section is the default location where PHP looks for the INI file and does not mean that the file must be located there; in fact, the following document suggest that you leave the configuration file in the C:\PHP folder:

http://www.php.net/manual/en/install.windows.manual.php
ik2008 at sipvantage dot com
18-Jan-2008 06:34
In windows XP, the php.ini file must be in c:\windows directory. Or else most of the functions will work except mysql functions. The very first mysql command mysql_connect will fail with the following message "Call to unsupported or undefined function mysql_connect(); "
fgabrieli at gmail dot com
10-Jul-2007 01:55
Problem:
Error in my_thread_global_end(): 1 threads didn't exit

It seems that php 5.2.3 libmysql.dll does not work as expected, because Apache shows this error in the logs when we use mysql_*() functions

Solution:
I found it here:
http://forums.mysql.com/read.php?10,153077,155121#msg-155121

which is to replace 'libmysql.dll' file in your PHP installation directory (also in winnt/system32 if you copied it there) with the Dll from PHP 5.2.1

You can download the second one from here:
http://www.php.net/get/php-5.2.1-Win32.zip/from/a/mirror

Regards,
Fernando Gabrieli
sam b
29-Jun-2007 06:53
I ran across the same problem listed below, using IIS6 instead of Apache on Windows Server 2003.

It seemed that I could run a PHP script on the command line just fine, and lines such as:
<? if(function_exists("mysql_connect")) echo "MySQL is present."; ?>
ran without error, and printed as expected.

Loading the file via IIS (using Firefox from my Ubuntu workstation), it wouldn't print anything, indicating that the MySQL extension hadn't been loaded.

Fix: rename/delete all "libmysql.dll" except for the one in "C:\PHP\ext" or equivalent.

... Same fix as listed below, but I wanted to point out: it's relevant to IIS as well.
adozolj at yahoo dot com
28-Jun-2007 02:41
I got the 'Fatal Error: call to unindentified function mysql_connect()' and resolved it after many hours of troubleshooting. The problem has to do with the libmysql.dll file residing in multiple directories. It SHOULD only be in the php directory. So, erase the copy in mysql bin and the apache bin and restart apache. I hope this helps someone. if this doesn't help check out forums.mysql.com and search "Call to undefined function mysql_connect". (i got the solution to this problem from here)
Shivan at Freenet dot de
27-Jun-2007 06:57
I had the same problem on IIS6 with php 5.2.3, that I got a blank page and nothing more, but the phpinfo(); worked.

The cause wasn't the not-set doc_root, but after enabling "show errors" I got an error message, that my script used more than 8 MB... ;)

After enlarging memory it worked :))))
jussi dot korhonen at evtek dot fi
30-May-2007 09:27
With MySQL 5.0.41 & Apache/2.2.4 & PHP/5.2.2 on Windows XP SP2 php_mysql.dll failed to load. All configurations, including php extension dir and windows path seemed to be correct. After hours of tinkering, I found that my MySQL bin/-directory contained a libmysql.dll too.
Because MySQL bin/-directory was before c:\php-directory in PATH, PHP tried to use MySQL version of libmysql.dll and failed miserably. By putting c:\php in PATH before MySQL everything worked like a charm!
andyfrazer at gorillasites dot com
25-May-2007 03:18
I was trying to start Apache 2.2.4 using PHP5.2.2 on Windows XP. When I added the following command to the Apache httpd.conf file:

LoadModule php5_module "c:/php/php5apache2.dll"

Apache would not start. When I removed that command, it started fine.

Based on a suggestion in http://www.apachelounge.com/forum/viewtopic.php?t=570, I tried this instead:

LoadModule php5_module "c:/php/php5apache2_2.dll"

and it started up immediately.

I wasted two evenings trying to get this work before I found the link to the ApacheLounge forum. I hope this helps someone else.
dr dot juanc at yahoo dot com
18-Apr-2007 12:18
Installing PHP5.2.1 in IIS 6.0 bring me some troubles too.

First i need to use full tag to make it your php script works and second the IIS didn't want to load the extension in the ext folder. I cheked the configuration a couple of thousand of time and everything seen to be ok.

I fixed up given read access in the "ext" folder to de "IUSER/PCNAME" user or to everyone/PCNAME user to the same folder. Just in case i did the same in the rest of the folder inside the php folder.

I wish nobody loose an all day in the same thing, like me.

excuse my english please
shane
20-Mar-2007 08:17
IIS Windows 2003 server.

You have upgraded to PHP5 from PHP4. phpinfo- works fine. You cannot however communicate with mysql (for example) through phpMyAdmin as it throws up an error stating it cannot load the mysqli extension and/or you get the 'bad handshake' warning.

Solution: update your libmySQL.dll file in your system32 folder. This requires you to stop all internet services on your computer i.e IIS. Full details below.

#############################
Background: my server is set up as follows:

php files folder == C:\PHP
I have configured my php.ini file opening up the required extensions etc
I have mapped the necessary extension to IIS
I have configured my website extension(s)
I have mapped  my windows path ';C\PHP;C\PHP\ext'
I have registered my ini file
I have tested my phpinfo() and it works
I have installed phpMyAdmin and it refuses to work
I have tried simple mysql connection scripts ...nada
I have checked everything 50 times
I am bald.

Then I did this:

##############################

1) Copy 'libmySQL.dll' from C:\PHP (or the folder where you have loaded php into)

2) Open 'Windows\system32' folder. Do nothing at the moment, just have this window 'to hand'.

3)Open IIS manager snap in(control panel - administrative tools - IIS manager)

Right click server name as shown below:

- Internet Information Services
    - My Computer (local computer) - right click

Select 'all tasks' then 'Restart IIS...'
Use drop down then select 'stop internet services on XXXXX' and click 'OK'

4) Return to your 'Windows\system32' folder. Paste 'libmySQL.dll' (it is already in your clipboard from step 1). It will warn you about overwrite the current one. Select YES.

5) Return to IIS manager. Follow steps as in '3' above except now choose 'Restart Internet Services on XXX' (the default option), click OK.

#############################

I hope this works for you.
hkhasgiwale at gmail dot com
06-Feb-2007 04:26
I wasted a lot of time trying to figure out the problem of not being able to display my 'test.php' demo script to work, the file lay in my IIS 5 " C:\inetpub\wwwroot" folder.

The file contents of test.php were:
<?php>
phpinfo();
<?>

Windows php installer version was 5.2.0

Problem lay in the minute dumb feature of windows explorer being used t change(rename) text file extension from 'test.txt' to 'test.php'.
The resultant name looked by the IIS was still 'test.php.txt'.

I used command line to change the filename to 'test.php' and it displayed in my browser.

http://localhost/test.php, worked right away.
simon at dna dot co dot nz
23-Jan-2007 08:42
I have found a lot of references to run the below script to test whether PHP is running:
<?
phpinfo();
?>

Unfortunately this does not work with a php.ini based from php.ini.recommended as that has short tags turned off by default.
Use full tags, as recommended anyway, otherwise you will just get a blank page.

<?php
phpinfo
();
?>

This is probably real basic to php old timers but can easily catch us newbies.
Daniel
02-Dec-2006 03:11
Re: Manual Configuration, pathing errors in IIS and ISAPI setup

Chris @ 11-Oct-2006 and phpmanual at pbb dot dds dot nl @ 07-Oct-2004 are both correct.

Problem is not with PHP but with IIS (mine is v5.1).

Installed PHP into C:\Program Files\PHP, and set environment variable PATH to path as stated.

When selecting the installation of php5isapi.dll via IIS Administrator, IIS would insert the path as:

"C:\Program Files\PHP\php5isapi.dll" (note the quotes and space in directory name)

All scripts ran and produced a HTTP 500 error.

Replaced ISAPI path in IIS with:

C:\PROGRA~1\PHP\php5isapi.dll (note the removal of the quotes and spaces, and the replacement of the path with 8.3 format names)

All scripts ran w/o problems.

Thanks to all! I hope someone can report if a similar problem exists with IIS6/7.
Chris
12-Oct-2006 12:58
RE:  phpmanual at pbb dot dds dot nl  @ 07-Oct-2004 11:29

You are correct.  I just had the same issue; I was following the PHP installation instructions and some very helpful WIMP instructions.

I was trying to keep things tidy by putting my PHP directory in C:\Program Files\PHP.  I set the PATH variable, ISAPI filter config and extension in Application Configuration, but was getting the "Specified module could not be found" error.

Changed the PHP directory to C:\PHP and reconfigured everything, did an iisreset, and it started working immediately.

Good catch, and thank you!
mega-squall at caramail dot com
23-Jul-2006 07:19
Remember to enter FULL PATH in the extension_dir parameter in php.ini ! Using only "./ext/" or any relative path will have your PHP failing to load extensions when called by Apache. That's quite tricky 'cause extensions are working when PHP is used through command line ...
Jason Greene
04-May-2006 11:06
If you are running websites within an Application Pool (which is now the default for IIS6 under 2K3) you need to make sure that your PHP directory (e.g. C:\PHP) has read permissions for the user assigned to the Application Pool.

1. In the IIS snap-in, choose Application Pools
2. Right-click on DefaultAppPool (or other, if you have one defined) and choose Properties
3. Click the Identity tab
4. Make a note of the user name set as the security account for this application pool (e.g. "Network Service")
5. Browse to your PHP directory and grant that user read permissions for the entire directory.

In my case, I had to add permissions for the user "NETWORK SERVICE" to get PHP scripts to work. Otherwise I received 401/403 authorization errors when trying to load them in a remote browser.

Note also that first tried adding IUSR permissions to the PHP directory, but that had no effect.
Ben
06-Apr-2006 08:17
In the Note Titled "Windows Server 2003 (x64 bits) + IIS 6.0" in step 1 when adding your new .php extension, it will not work unless after you click on the "Home Directory" you make sure that your "Execute permissions:" are set to "Scripts Only".

By default, on my machine, the permissions were set to "None" not allowing php to run.

Also, for more security it might be wise to Add the new extension just to your default site instead of the whole Web Sites folder in IIS. This would only apply if you were hosting multiple sites and had a site you didn't want scripts to run on.
Tom
14-Feb-2006 03:54
On this page and the FAQ they point out that to reset the Windows PATH variable to include your php dir, you need to completely restart the machine.

If you can't afford to do that (installing on a live server for example), you can use the setx.exe tool from the Windows Resource Kit (google it). Like so:

c:\pathtoresourcekit> setx.exe PATH "%PATH%;c:\php" \m
Windows Server 2003 (x64 bits) + IIS 6.0
31-Jan-2006 09:16
1. Add new extension (.php)

    * Expand the local computer in the left pane
    * Right-click on "Web Sites" in the left pane, then click "Properties" in the menu that pops up
    * Flip top the "Home Directory" tab
    * Click "Configuration"
    * Flip to the "Mappings" tab
    * Click "Add..."
    * Enter the full path to php5isapi.dll in the "Executable" textbox (Browse... to find it more easily if you need to)
    * Enter ".php" in the "Extension" textbox
    * Select radial button "Limit to", enter "GET,POST,HEAD"
    * Click "OK" all the way out

2. Verify php5isapi.dll is allowed

You must verify that the versions of php5isapi.dll that you want to use are allowed.

   2.1. In Internet Information Services (IIS) Manager, in the left-hand column, click the Web Services Extensions node and verify php5isapi.dll is allowed and all other Web Service Extensions are prohibited.
   2.2. If the version of php5isapi.dll that you want to use does not appear in the list, follow the instructions to enable it and then repeat this procedure:

Go into IIS
Below all of the websites is a folder: Web Service Extensions
In blue, to the lower left, is a choice: Add A New Web Service Extension
Add PHP/PHP5ISAPI.dll
Choose To ALLOW it.

   2.3 If the version of php5isapi.dll you want to use appears on the list but is not allowed, right click the version of php5isapi.dll you want to allow and click Allow.

3. Configuring IIS for 32-Bit Emulation Mode (THIS IS MOST IMPORTANT!!!!)

3.1. If you are installing IIS on x64-based editions of Windows Server 2003 or Windows Server 2003 R2, IIS must be configured to run in 32 bit emulation mode. Perform the following procedure on each front-end Web server running an x64-based edition of Windows Server 2003.
Configure Internet Information Services (IIS) for 32-bit mode

   1. Click Start, and then click Run.
   2. In the Open box, type cmd, and then click OK.
   3. In the command prompt window, navigate to the %drive%:\Inetpub\Adminscripts folder, where %drive% is the drive in which Windows Server 2003 is installed.
   4. In the Adminscripts folder, type the following command:

      cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1

      Note  The value "1" for Enable32bitAppOnWin64 specifies 32-bit mode, whereas the value "0" specifies 64-bit mode.
   5. Press ENTER.
   6. Type iisreset and then press ENTER.
   7. Close the command prompt window.
   8. Re-star System.

Note  The Run WWW service in IIS 5.0 isolation mode check box is only selected if you have upgraded to IIS 6.0 on Windows Server 2003 from IIS 5.0 on Windows 2000. New installations of IIS 6.0 use IIS 6.0 worker process isolation mode by default.
patatraboum at nospam dot com
27-Dec-2005 12:09
IIS + PHP

- The browser can't find your php code like localhost/dir/dir_code.php from any virtual directory (404 error)
- You are sure the code exists
You may rename it with a .html extension and check if it displays
- Process of your php code like localhost/root_code.php is ok from the root directory

It may come from the doc_root directive in php.ini whitch should be set to blank :

doc_root =

Then restart IIS to reload php.ini
some dude @ some place
04-Nov-2005 02:57
on two recent installation attempts on iis6 on win2k3 i followed the php manual and windows configuration steps exactly and php would still not run.

on the first install i had to give the USER account (not IUSR) read execute permissions to this file, c:\php\sapi\php4isapi.dll. using filemon i saw that it was being accessed and access was denied.

steps:
- right click on this file > properties > security > add > location (select the server -not domain if listed) > advanced > find now > Users (usually the last item) > click OK
- select Read & Execute > apply

also a complete computer restart was required in each install
Bill dot Rook at Gmail dot com
18-Sep-2005 03:09
doc_root = ".;c:\inetpub\wwwroot" does seem to work with virtual websites. This might be a better option then commenting out the line.
Jason
09-Sep-2005 09:54
For me atleast, the steps for installing php 5 on IIS 6 on windows 2003 seemed to get buried with the other setups. I found it difficult to quickly look through and make sure I covered every step. So I created a clean step by step tutorial with screenshots:
http://psdforums.com/article.php?a=9
atomictaco at atomic-taco dot com
10-Jul-2005 02:17
In response to phpmanual at pbb dot dds dot nl:

You are absolutly correct.  I found this out while trying to install PHP4 with Apache2 on XPPro.  Here are 3 general guidelines that I have found to be correct:

- Path may not have spaces.  Change C:\Program Files to C:\Progra~1  If you don't understand this, go to start-->run-->command (not cmd).  Type cd\ and hit enter.  Then type dir.  You should see all your directory names there.

- Paths should not be enclosed by quotes.

- Use forward slashes (/) and not backslashes (\)
thierry dot bo at nxextxcxoxuxrxrxixexr dot com
20-Dec-2004 10:50
With PHP 4.3.x and apache 1.3.x on windows, PHPRC is used only if php is installed as cgi. With module, no matter using setenv in httpd.conf or PHPRC as windows environment variable, it is not used.
cpz at akik-ffm dot de
19-Dec-2004 04:24
In the above, "the web server's directory" means the directory where the server executable lives, for example for the Apache installation on my XP box this is "\program files\apache group\apache2\bin" and NOT just "\program files\apache group\apache2".

But it's probably best to tell your web server where PHP's ini file is stored, for example via PHPIniDir for Apache's http.conf.
mic42 at users dot sourceforge dot net
01-Dec-2004 02:09
To install PHP as CGI under the Tcl Webserver Tclhttpd follow the instructions at:
http://wiki.tcl.tk/12130
chuacheehow at gmail dot com
08-Oct-2004 10:55
My experience with IIS 5.1 is that the doc_root directive be commented in order for virtual directories to recognise PHP files (with PHP installed as CGI).
phpmanual at pbb dot dds dot nl
07-Oct-2004 11:29
Okay, I'm a total newbie to this, so my findings may be wrong, but this is what I found out.

The manual says "do not have spaces in the path (like C:\Program Files\PHP) as some web servers will crash if you do". Indeed, when using this with PHP5 on WinXP, I got the error message "The specified module could not be found."
However, the problem seems not to lie in the SPACE in the pathname, but in the QUOTES that Windows adds when a space is in the pathname! This is what I found:

"C:\Program Files\php5\php5isapi.dll" -- doesn't work
C:\php5\php5isapi.dll -- works
"C:\php5\php5isapi.dll" -- doesn't work
C:\Progra~1\php5\php5isapi.dll -- works
"C:\Progra~1\php5\php5isapi.dll" -- doesn't work
C:\Program Files\php5\php5isapi.dll -- doesn't work, because it's not accepted by Internet Information Services

I don't know if this all is a problem with Internet Information Services or with PHP, but it would be nice if it was more documented in the PHP manual.
php dot user dot com
29-Aug-2004 06:43
After having the same problem as specifed below with "No input file specified". I changed the doc_root as mentioned.

This is fine if all php scripts are going to be run from the c:\inetpub\wwwroot directory. To enable it for multiple websites where the root directories are all different simply leave the doc_root attribute in the php.ini file blank.

This is for the isapi version not cgi implementation. It also means you don't have to set IUSR or IWAM access to the PHP root directory.

 
show source | credits | sitemap | contact | advertising | mirror sites