一般在已经安装iis的windows系统上已经默认支持了asp及aspx,那么下面主要讲解如何让其也支持php并且支持MYSQL数据库。
特别声明:【如果是选择PHP5.4.10安装版则可以省略此步骤,因为它自动添加了配置,但是由于PHP5.4.10没有安装版,所以只能自己配置,自己配置难度较大,我最终选择的是PHP5.3.20版本
但以下部分我也把PHP5.4.10手动配置给写了出来,供网友参考】
第一部分:、首先你要到网址http://windows.php.net/download/下载PHP For Windows 版本,你会看到这里有很多不同的版本可以下载,那么该如何选择呢?第一个选择是首先选择最新的版本,我们看到现在最新的版本是PHP 5.4 (5.4.10),好那么我们就下载PHP5.4.10版本。
①如何选择PHP5.4.10的VC6版本和VC9版本
VC6版本是使用Visual Studio 6编译器编译,如果PHP是用Apache来架设,那就选择VC6版本。
②如何选择PHP5.4.10的Thread Safe版本和Non Thread Safe版本
从字面上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
第二部分:、再来看PHP的两种执行方式:ISAPI和FastCGI。
------------------------------------------------------------------------------
注意:
③我们有没有什么办法让PHP5.4.10 在IIS里运行的呢?当然有了,那就是使用FastCGI。据说它的效率很高,
④为什么FastCGI的执行效率会很高呢?那是因为FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率
第三部分: Windows 2003环境下搭建PHP5.4.10教程
1.下载 FastCGI For IIS6
http://www.iis.net/expand/FastCGI(下载X86版本)把左边的网址拷贝到地址栏即可下载
(注:实际是到http://www.iis.net/downloads/microsoft/fastcgi-for-iis这个网址下载FastCGI for IIS.)
下载页面为:
下载的文件为FastCGIIIS6.26FastCGIIIS6.exe,下载之后,双击进行安装,出现如下图所示的画面:
关键是这一步,这一步不能点击我接受,而要点击上面的兰色文字“直接下载链接”它就会到http://download.microsoft.com/download/E/0/C/E0C0709A-66E5-4113-9A6C-A5F65BF6717D/fcgisetup_1.5_x86_rtw.msi去直接下载。
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:
同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。
2.下载PHP 5.4 (5.4.10)
到网址http://windows.php.net/download/下载PHP For Windows 版本VC9 x86 Non Thread Safe (2012-Dec-20 00:23:45)下载后解压,解压后拷贝到安装目录(我的安装目录是C:\PHPServer\PHP)。
3. 注册 PHP 到 FastCGI
我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。
打开C:\WINDOWS\system32\inetsrv\fcgiext.ini文件
在文件最后加上下面的语句:
[Types](这个是文件原来就有的,在[Types]后面加上下面的语句就可以,要全部哦不然会报错的。)
php=PHP
[PHP]
ExePath=C:\PHPServer\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\
“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。
4. 配置 php.ini
PHP5.4.10安装目录下是没有PHP.ini这个文件的,只有php.ini-development和php.ini-production,我们将C:\PHPServer\PHP\php.ini-development复制一个,然后重命名为 C:\PHPServer\PHP\php.ini(当然如果你怕有错可以先备份一下)。
打开 C:\PHPServer\PHP\php.ini,
修改PHP.ini文件:
1。查找display_errors改为:display_errors = On
2。查找display_startup_errors改为:display_startup_errors = On
3。查找error_prepend_string改为:error_prepend_string = "<br><font color=#ff0000>"
4。查找error_append_string改为:error_append_string = "</font><br><br>"
5。查找extension_dir改为:extension_dir = "C:\PHPServer\PHP\ext\"
6。查找fastcgi.impersonate改为:fastcgi.impersonate = 1
7。下列代码按下修改,在Windows Extensions中去除扩展前面的分号(;):
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_exif.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
可以看出主要是去掉前面的“;”号
8。查找date.timezone改为:date.timezone = PRC
修改完记得重启 IIS。
5. 配置网站【如果是安装版的此步骤也可以省略,例如PHP 5.3.20就可以下载到安装版,
因为安装版自动添加了!】
右键网站 => 属性 => 主目录 => 配置 => 添加,如下图配置:
可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
全部配置好了,一定要把IIS服务重启一下。
6. 新建一个 phpinfo.php 文件,内容为:
<?php
7.配置PHP后,运行phpinfo.php程序,出现如下的错误提示。
FastCGI Error
The FastCGI Handler was unable to process the request.
--------------------------------------------------------------------------------
Error Details:
Error Number: 5 (0x80070005).
Error Description: 拒绝访问。
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
原来是没有赋予用户相应权限,注意这里是给“PHP安装目录”赋权,给“IIS 启动帐户组或用户赋予读取和运行权限”
给此目录增加一个“IIS 启动进程帐户”,方法如下:
“安全”标签,“添加”,“高级”,“立即查找”,“Network Server”,“确定”即可,就给目录加上了IIS启动帐号。
看到类似以下效果说明你的服务器可以跑 php 了。
使用