I just installed PHP 5.2.8 (MSI package) on windows XP, IIS 5.1.
Selected IIS-ISAPI, always got error "The specified module could not be found." (firefox), HTTP 500 Internal Server Error (ie 7). Even though no extensions were selected.
Trick: Install PHP to C:\PHP (and not to C:\Program Files\PHP)
In your IIS web site properties, tab home directory, configuration, application mappings.
Remove the quotes before and after the executable path and the problem will be solved.
Windows Installer (PHP 5.2 and later)
The Windows PHP installer for later versions of PHP is built using MSI technology using the Wix Toolkit (» http://wix.sourceforge.net/). It will install and configure PHP and all the built-in and PECL extensions, as well as configure many of the popular web servers such as IIS, Apache, and Xitami.
First, install your selected HTTP (web) server on your system, and make sure that it works. Then proceed with one of the following install types.
Run the MSI installer and follow the instructions provided by the installation wizard. You will be prompted to select the Web Server you wish to configure first, along with any configuration details needed.
You will then be prompted to select which features and extensions you wish to install and enable. By selecting "Will be installed on local hard drive" in the drop-down menu for each item you can trigger whether to install the feature or not. By selecting "Entire feature will be installed on local hard drive", you will be able to install all sub-features of the included feature (for example by selecting this option for the feature "PDO" you will install all PDO Drivers).
It is not recommended to install all extensions by default, since many of them require dependencies from outside PHP in order to function properly. Instead, use the Installation Repair Mode that can be triggered through the 'Add/Remove Programs' control panel to enable or disable extensions and features after installation.
The installer then sets up PHP to be used in Windows and the php.ini file, and configures certain web servers to use PHP. The installer will currently configure IIS, Apache, Xitami, and Sambar Server; if you are using a different web server you'll need to configure it manually.
The installer also supports a silent mode, which is helpful for Systems Administrators to deploy PHP easily. To use silent mode:
msiexec.exe /i php-VERSION-win32-install.msi /q
You can control the install directory by passing it as a parameter to the install. For example, to install to e:\php:
msiexec.exe /i php-VERSION-win32-install.msi /q INSTALLDIR=e:\php
You can also specify what features to install. For example, to install the mysqli extension and the CGI executable:
msiexec.exe /i php-VERSION-win32-install.msi /q ADDLOCAL=cgi,ext_php_mysqli
The current list of Features to install is as follows:
MainExecutable - php.exe executable ( no longer available as of PHP 5.2.10/5.3.0; it is now included by default ) ScriptExecutable - php-win.exe executable ext_php_* - the various extensions ( for example: ext_php_mysql for MySQL ) apache13 - Apache 1.3 module apache20 - Apache 2.0 module apache22 - Apache 2.2 module apacheCGI - Apache CGI executable iis4ISAPI - IIS ISAPI module iis4CGI - IIS CGI executable iis4FastCGI - IIS CGI executable NSAPI - Sun/iPlanet/Netscape server module netserve - NetServe Web Server CGI executable Xitami - Xitami CGI executable Sambar - Sambar Server ISAPI module CGI - php-cgi.exe executable PEAR - PEAR installer Manual - PHP Manual in CHM Format
For more information on installing MSI installers from the command line, visit » http://msdn.microsoft.com/en-us/library/aa367988.aspx
Upgrading PHP with the Install
To upgrade, run the installer either graphically or from the command line as normal. The installer will read your current install options, remove your old installation, and reinstall PHP with the same options as before. It is recommended that you use this method of keeping PHP updated instead of manually replacing the files in the installation directory.
Apache2 on Windows (PHP 5.3.1):
Install VC6 x86 THREAD SAFE. If you do not see Apache in the list of webservers, it is because you downloaded the NON-THREAD SAFE installer.
Tryed installing PHP several times using the MSI instalation, which defaults to "C:\Prorame Files\PHP", and could not work at all.
The OS: Windows XP, with SP3
Web Server: IIS 5.1
Step 1: Install the MSI Instalation, but make sure you select the instalation folder to be "C:\PHP" and NOT "C:\Programe Files\PHP\".
Step 2: Copy the "php.ini" fil from "C:\PHP", to "C:\Windows\" folder. Keep the default settings, so far OK.
Step 3: Go to IIS, Open "Default Website", Properties, and open the "Home Directory" tab, and then "Configue" buttton.
Step 4: Click 'Add" under Mappings Tab, and browse for "C:\PHP\php-cgi.exe" file from 'Browse', and add ".php" (i.e. without the Qoutes ""). Keep "Verb" settings to "All Verbs" and click "OK"
Step 5: Create a php file with : <?php phpinfo();?>, and test.
It should be working fine by this time.
Hope this was helpful to all.
Two aspects of a typical Windows installation:
1) The default behavior for short_open_tag is OFF. You must edit php.ini and explicitly set it to ON. This means most developers will have their source code displayed rather than the script executed. short_open_tag OFF means the php tags must be <?php ?> and the shorter <? ?> will not be interpreted.
2) When using php as cli from the command line, Windows 7 will perform the file association in such a way that running a script from the command line will not accept additional arguments. Note, however that typing the full path to the executable will see arguments. As Windows 7 has a limited file associations GUI, the fix is to open regedit and change the key HKEY_CLASSES_ROOT\Applications\php.exe\shell\open\command from its default value of "C:\php\php.exe" "%1" to instead read "C:\php\php.exe" "%1" "%2" "%3" "%4" "%5" "%6" "%7" "%8" "%9"
I have just spent a tiresome morning trying to get PHP 5.2 / 5.3 installed onto Apache 2.2 (WinXPSP2) (Slight oddity in setup that program files on D: drive)
I have finally got it to work by using the following:
1) Getting installation script to use "Other CGI" (would be nice if it mentioned Apache - I believe it to be a fairly popular option)
2) Adding the following directives to httpd.conf (the Apache configuration file)
ScriptAlias /php/ "D:/Program Files/PHP/"
(This tells Apache to treat the PHP directory as script files/executables and alias it under /php/ for ease of use later)
AddHandler x-httpd-php .php
(This tells apache to recognise all .php files as of type x-httpd-php (equally you could call them anything you liked and after this mornings debacle I can think of one or two choice phrases)
Action x-httpd-php "php/php-cgi.exe"
(The tells Apache to use php-cgi.exe to handle files of type x-httpd-php (or .php files as we declared earlier). php-cgi.exe only exists if you have selected the "Other CGI" option at installation". A lot of stuff around on the web is pointing at php.exe which is now failing. Has this changed recently?)
Using the installer, I have been getting the "cannot run script" error on Windows XP and IIS 5.1. I used both the Zip file and installer filer to make it successful:
1. I downloaded the zip file (not the installer) into C:\php\,
2. extracted the contents to the same directory (C:\php\).
3. Downloaded and ran the installer into the C:\php\
On IIS 5.1 (Windows XP) and IIS 6.0 (Windows Server 2003) the following installation method goes very smoothly, but for three additional tasks.
Before installing PHP 5.2.x using the Microsoft Web Platform Installer, make sure:
C:\PHP does not exist
C:\Program Files\PHP does not exist (it will be created)
C:\Windows\php.ini does not exist (you won't need it there)
Run Microsoft Web Platform Installer allowing it to install FastCGI support and PHP 5.2.x.
After installation you should have PHP installed in C:\Program Files\PHP.
An examination of php.ini will show you will not likely need to change any settings, except the sendmail_from address. The Windows specific settings have been set, but are grouped together under:
; Default timeout for socket based streams (seconds)
In addition to having the correct minimal IIS settings already set in php.ini, you will find the Path has had C:\Program Files\PHP\ added, and the environment variable PHPRC is set correctly.
The three things not performed by the install but needed to run:
HKEY_LOCAL_MACHINE\Software\PHP\IniFilePath may be wrong. It should not be C:\Windows, but C:\Program Files\PHP, which is what is set in both the PATH and PHPRC. (This could be a left over setting from a previous install, but the installer does not correct it.)
In IIS manager, under the default web site properties, Home Directory (tab), Configuration (button), Mappings, the entry for .php may be missing or wrong. It should be:
Executable: "C:\Program Files\PHP\php-cgi.exe" with the quotes.
Verbs: Limit To: GET,HEAD,POST,TRACE
Script Engine checkbox checked
Check That File Exists checkbox checked.
The installer will not set the proper security permissions for php-cgi.exe or php.ini, both of which need to be accessible to the default Internet user account: e.g. IUSR_machine name.
In Windows Explorer, navigate to the C:\Program Files\PHP folder, right click, properties, security (tab), add IUSR_machinename and accept the default security permissions.
All of these seemed to take effect without a reboot, but a reboot is suggested. Note: Items 1 and 2 may be left over from previous installations and might possibly be rightly ignored by the installer, but if they are not corrected (at least check) you are going to have a problem.
Item 3 is not going to be performed by the installer. You will have to do it based on how you have security permissions set in IIS.
run php as CGI binary, and add these to httpd.conf,
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
ScriptAlias /php/ "C:/php/"
Action application/x-httpd-php "C:/php/php-cgi.exe"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtml
Allow from all
Allow from all
finally it works
I think a lot of people are turned away from using PHP because it is such a nightmare to install. I install Apache/PHP and it never works.
With todays technology, is there not an installer that just works for PHP and Apache together? There are so many versions/binaries but how about publishing one that just works.
I've been developing in PHP for over 10 years now and yes I still have issues trying to get this to install on a new machine. It usually takes me about 4-5 hours every time even though it should only be a couple of steps to get it to work.
I just installed PHP 5.2.8 as an ISAPI-extension for IIS 6 in Windows 2003 server.
I used the Windows installer, but had to make a few changes manually:
- Copy php.ini from the PHP folder (C:\Program Files\PHP) to the Windows folder (C:\Windows).
- Enable the ISAPI extension. (In IIS Manager under "Web Service Extensions" add a new extension with "Required files" set to C:\Program Files\PHP\php5isapi.dll).
- Add index.php to default index pages (select properties for "Web Sites", add it on the "Documents" tab).