第一步、安装 FastCGI For IIS6
3.2.1、 将下载得到的fcgisetup32.msi,双击运行进行安装。
安装后在 C:/WINDOWS/system32/inetsrv 目录下产生了五个文件。【图十二所示】
【图十二】
【图十三】
第二步、安装PHP
由于PHP5.3的全新特效及改进,原有的isapi方式解析PHP脚本已经不被支持,PHP从5.3.0以后的版本开始使用微软的fastcgi模式,这是一个更先进的方式,运行速度更快,更稳定!新版本的PHP5.3通过以往老方法已经不能在IIS上安装了,下载IIS下的PHP,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限,
【图十四】
D:/PHP/php5 目录下的所有dll文件复制到C:/windows/system32下(Windows2000系统为C:/winnt/system32,下同),如果已经有若干同名文件存在,覆盖即可。【图十五所示】
【图十五】
打开 C:/WINDOWS/system32/inetsrv/fcgiext.ini 文件。
; This is the configuration file for the FastCGI handler for IIS 6.0.
; The FastCGI handler will look for this file in the same directory as
; fcgiext.dll. By default, the FastCGI installer will place this file into
; the %windir%/system32/inetsrv directory.
[Types]
php=PHP
[PHP]
ExePath=D:/PHP/PHP5/php-cgi.exe
这里要用:“/”不能用“/”,“php”表示扩展名,“PHP”是配置节名称,以“[PHP]”定义。 (选你自己的安装的目录,下同。)
3.2.4、 查找:extension_dir = "./" (约第813行)
将其路径知道你的PHP目录下的扩展功能目录中,这里PHP5对应修改为extension_dir = "D:/PHP/php5/ext" 。
再在D:/PHP下建立文件夹,并命名为upload_tmp
查找 ;upload_tmp_dir = (约第879行)
将;upload_tmp_dir =该行的注释符,即前面的分号”;”去掉,使该行在php.ini文档中起作用。
upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个决定路径,需要注意的是,这里设置的目录必须有读、写权限。
这里我设置为upload_tmp_dir = "D:/PHP/upload_tmp/" (这里就是我前面建立的文件夹)
找到:fastcgi.impersonate = 1;约854行这句,把前面的;去掉,
fastcgi.impersonate = 1
如下图:
short_open_tag= On
3.2.5、 搜索 ; Windows Extensions,定位到php.ini文件的约942行,将下面列出的常用扩展前面的分号注释符去掉:
; extension=php_curl.dll ; extension=php_gd2.dll ; extension=php_ldap.dll ; extension=php_mbstring.dll ; extension=php_exif.dll |
; extension=php_mysql.dll ; extension=php_mysqli.dll ; extension=php_sockets.dll ; extension=php_xmlrpc.dll |
特别提示: Exif扩展是用来显示图片的exif信息的,因该扩展需要mbstring支持,所以将extension=php_exif.dll这一行移动到extension=php_mbstring.dll一行的下面。
注意最后一个php_zip.dll这个在我下载下来的php5.3.0的ext内是不存在的,所以如果开启会报错误,如果实在需要这个DLL,可以从PHP5.2中拷贝过去(php5.2.X可以,php5.3.0不行)extension=php_ming.dllphp5.3.0的ext内是也不存在
【图十六】
;date.timezone = (约第997行)
去掉前面的分号注释符,这里将其设置为 date.timezone = Asia/Shanghai
找到下面
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; date.timezone =
更改为并去除前面的“;”:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
如果不改以上的date.timezone可能打开网页会提示500错误
关于时区设定的说明: 从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时,有以下2种方法可以恢复正常的时间。 1、如果要用5.1以上版本,而且不修改php.ini,则需要在关于时间的初始化的语句的上面加上date_default_timezone_set (XXX),或者使用date('Y-m-d G:i:T', strtotime('+8HOUR') )来获取日期时间; 2、一劳永逸,仅限能修改php.ini。打开php.ini把date.timezone前面的分号去掉,在=后面加XXX,重启http服务(如apache2或iis等)即可。 关于XXX,大陆内地可用的值是:Asia/Chongqing、Asia/Shanghai、Asia/Urumqi(依次为重庆,上海,乌鲁木齐),港台地区可用:Asia/Macao、Asia/Hong_Kong、Asia/Taipei(依次为澳门,香港,台北),还有新加坡:Asia/Singapore,以上没有北京,不过接着往下看,其他可用的值是:Etc/GMT-8,Singapore ,Hongkong,PRC(中华人民共和国)。 |
3.2.6、 查找:;session.save_path = "/tmp" (约第1466行)
将前面的分号注释符去掉,这里将其设置为session.save_path = "D:/PHP/upload_tmp" (这里就是我前面建立的文件夹)
3.2.7、 如果你有遇到无法上传较大文件或者运行某些程序经常超时,那么可以修改以下内容来调整相关限额:
在大约第440行,
max_execution_time = 30 ; 这个是每个脚本运行的最长时间,根据你的需求更改数值,单位秒
max_input_time = 60 ; 这是每个脚本可以消耗的时间,根据你的需求更改数值,单位也是秒
大约第458行,
memory_limit = 128M ; 这个是脚本运行最大消耗的内存,根据你的需求更改数值,256M。
大约第732行,
post_max_size =10M
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...根据你的需求更改数值,M是单位:兆。
大约第883行,
upload_max_filesize = 2M ;
上载文件的最大许可大小 ,根据你的需求更改数值,M是单位:兆。
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
3.2.8、 php.ini文件中基本就是作如上修改,其他的你可以根据自己的具体需求修改,可见附后:PHP5.3.0特除配置。然后将该文件保存,再复制一份到C:/Windows下面。如果PHP5是装在C盘,因这个"备份"文件的存在,会干扰了FastCGI的运行,只有把 C:/php/php.ini 删除,不删除有时IIS报500错!
3.2.9、 配置网站
【图十七】
【图十八】
3.2.10、写个 php 测试下吧
建立一个网站,phpinfo.php文件内容为:
文件:phpinfo.php
<?php
phpinfo();
?>
【图十九】
3.2.11、安装过程出现小插曲,如果运行测试文件出现如下提示:
先运行D:/PHP/PHP5/php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,再找以下错误解决方法,很重要。
错误1,
FastCGI Error
The FastCGI Handler was unable to process the reqst.
Error Details:
The FastCGI process exited unexpectedly
Error Number: -2147467259 (0x80004005).
Error Description: 未指定的错误
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
搜索: register_globals = Off (约第705行)
将Off更改为 On,该行的注释符,即前面的分号”;”去掉,使该行在php.ini文档中起作用,即得到 register_globals = On ;
注:这个对于PHP的全局变量功能,考虑有很多PHP程序需要全局变量功能所以打开,打开后请注意PHP程序的严谨性,如果不需要全局变量功能,或者出错,请保持默认Off状态。
错误2,
fastcgi error
the fastcgi handler was unable to process the reqst.
--------------------------------------------------------------------------------
error details:
error number: 5 (0x80070005).
error description: 拒绝访问。
http error 500 - server error.
internet information services (iis)
这个错误是由于在解压php之后,没有对iis启动帐户赋予该目录的读取和运行权限.修改文件夹安全属性,问题解决.
错误3,
FastCGI Error
The FastCGI Handler was unable to process the reqst.
--------------------------------------------------------------------------------
Error Details:
Could not find entry for "php" on site 1960240566 in [Types] section.
Error Number: 1413 (0x80070585).
Error Description: 未指定的错误
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
即说明没有安装成功!请按照fcgiext.ini 修改配置即可!!
错误4,
----------
FastCGI Error
The FastCGI Handler was unable to process the reqst.
Error Details:
- The FastCGI process exited unexpectedly
- Error Number: -1073741819 (0xc0000005).
- Error Description: Unknown Error
HTTP Error 500 - Server Error.
Internet Information Services (IIS)
--------
我的PHP目录在C盘
当时配置PHP.INI的时候就在那个安装目录编辑好,再复制到windows目录下的...
结果恰恰是C:/PHP/php.ini 这个"备份"文件的存在 干扰了FastCGI的运行,总是提示我。
把 C:/php/php.ini 删除,搞定!
随后用FakeCGI调试工具才搞定原因..
感谢FakeCGI,痛斥我的坏习惯!!!
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
在论坛发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
1.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号
2.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号,并将此行移动到extension=php_mbstring.dll,之后。
3.找到[exif]段,把下面语句的分号去掉。
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = S-2BE
;exif.decode_unicode_intel = S-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel = JIS
【图二十】
点击NEXT
【图二十一】
打上勾同意
【图二十二】
出现安装路径,默认路径,点击"Next"
【图二十三】
在这里选择:IIS FastCGI,再点击Next
【图二十四】
然后在模块里选上
mysql
GD2
Multibyte String
mcrypt
之后点击"Next",安装成功!