新版本 PHP 的 Windows 安装程序是用 Wix 工具包(» http://wix.sourceforge.net/)基于 MSI 建立的。它将安装并配置 PHP 和所有内置以及 PECL 扩展库,并且配置许多流行的 web 服务器,例如 IIS,Apache,以及 Xitami。
首先,安装自己所选择的 HTTP(web)服务器,并确保其正常运行。接着再进行以下安装方式之一。
运行 MSI 安装程序并按照安装向导的步骤进行。首先会提示选择要配置的 web 服务器,以及所需的任何配置细节。
接着会提示要安装并激活那些特性和扩展。在每个项目的下拉菜单中选择“Will be installed on local hard drive”可以激活安装该单个项目。选择“Entire feature will be installed on local hard drive”,则会安装所有该项目的子项(例如对“PDO”选择了此选项,则会安装所有的 PDO 驱动)。
不推荐安装所有的扩展库,因为其中许多库还需要 PHP 之外的支持才能正常工作。在安装好之后,从控制面板的程序和功能里可以调出更改模式来激活或关闭某扩展和功能。
安装程序接下来设定 Windows 使用的 PHP 和 php.ini 文件,并配置特定的 web 服务器使用 PHP。目前安装程序可以配置 IIS,Apache,Xitami 和 Sambar 服务器。如果使用其它 web 服务器,则需要手工配置。
安装程序支持无声模式,有助于系统管理员更容易发布 PHP。要使用无声模式:
msiexec.exe /i php-VERSION-win32-install.msi /q
可以将安装目录作为命令行参数传递给安装程序,例如要安装到 e:\php:
msiexec.exe /i php-VERSION-win32-install.msi /q INSTALLDIR=e:\php
还可以指定安装哪些特性。例如要安装 mysqli 扩展和 CGI 可执行程序:
msiexec.exe /i php-VERSION-win32-install.msi /q ADDLOCAL=cgi,ext_php_mysqli
目前可安装的特性列表如下:
MainExecutable - php.exe 可执行文件(自 PHP 5.2.10/5.3.0 起不再可用;默认已包含) ScriptExecutable - php-win.exe 可执行文件 ext_php_* - 各个扩展库(例如:MySQL 是 ext_php_mysql) apache13 - Apache 1.3 模块 apache20 - Apache 2.0 模块 apache22 - Apache 2.2 模块 apacheCGI - Apache CGI 可执行文件 iis4ISAPI - IIS ISAPI 模块 iis4CGI - IIS CGI 可执行文件 iis4FastCGI - IIS CGI 可执行文件 NSAPI - Sun/iPlanet/Netscape 服务器模块 netserve - NetServe Web 服务器之 CGI 可执行文件 Xitami - Xitami CGI 可执行文件 Sambar - Sambar 服务器 ISAPI 模块 CGI - php-cgi.exe 可执行文件 PEAR - PEAR 安装程序 Manual - CHM 格式的 PHP 手册
For more information on installing MSI installers from the command line, visit » http://msdn.microsoft.com/en-us/library/aa367988.aspx
要升级 PHP,正常用图形模式或者从命令行运行安装程序。安装程序会读取当前安装的选项,移除旧的安装,并用同样选项重新安装 PHP。建议用此方式更新 PHP 而不是手工替换安装目录下的文件。
ckelley at ca-cycleworks dot com (2012-04-03 03:18:05)
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"
lwpro2 (2010-10-04 01:09:26)
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
<Directory "C:/Apache2.2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Directory "C:/php">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
finally it works
fawaz at webcitynetworks dot com (2010-03-09 14:24:23)
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
Instalation Steps:
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.
rod at rodsdot dot com (2010-02-21 14:29:06)
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)
Those are:
upload_tmp_dir="C:\WINDOWS\Temp"
session.save_path="C:\WINDOWS\Temp"
error_log="C:\WINDOWS\temp\php-errors.log"
cgi.force_redirect=0
fastcgi.impersonate=1
fastcgi.logging=0
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:
1.
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.)
2.
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.
3.
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.
peter at peterjhart dot com (2010-02-02 09:21:53)
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.
manville at doctors dot org dot uk (2009-07-21 06:50:26)
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?)
infoworld at yahoo dot com (2009-02-12 13:41:52)
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\
Nagesh A
Anonymous (2009-01-09 07:06:54)
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.
jstein at image dot dk (2008-12-30 14:33:05)
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).