华夏名网主机5折起,详情访问 jxun.net !每天五分钟,了解电商动态!

IIS6.0+PHP5.2.17+FastCGI+MySQL

闲人闲记 鱼之缘 1682℃ 0评论

因为之前安装的西数版集成PHP环境出现了phpMyAdmin无法显示中 文等各种错误,所以被迫无奈重装服务器,在网上浏览的时候无意的发现PHP5.3的全新特效及改进,原有的ISAPI方式解析PHP脚本已经不被支 持,PHP从5.3.0以后的版本开始使用微软的FastCGI模式,虽说PHP 5.3发布的Windows版已经不支持ISAPI模式了,是未来的趋势,但PHP5.3现在还不是很流行,PHP3.5的改动也很大,我有的很多程序都 不支持,只能用PHP5.2。大家都知道php配置有几种方式:
1、CGI方式加载PHP环境,通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。

特点是:稳定,但效率太低。

2、ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。

特点是:多线程,效率较高,但不够稳定。

3、FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。

特点是:高效率,高稳定性,属于将来发展趋势。

新版本的PHP5.2通过以往老方法已经不能在IIS上安装了,经过自己的摸索,发现5.2也可以安装FastCGI,PHP5.2+FastCGI模式来搞的尽量完美一些,开始!(这里用的服务器操作系统是x86版本的,所以以下程序均为在Windows x86环境下使用的版本。)
首先我们要下载两个工具,FastCGI和php5.2

一、FastCGI
fcgisetup_1.5_rtw_x86.msi(这个是支持IIS6.0的)
下载地址:http://www.iis.net/download/FastCGI  
打开页面后点右边 download x86 / x64 (根据自己的服务器选择下载)

003611ggvkvqqgwfwzqpzz


本地下载:
fcgisetup_1.5_rtw_x86.rar (206.82 KB, 下载次数: 26)
fcgisetup_1.5_rtw_x64.rar (272.4 KB, 下载次数: 1)
放心下载,这些都是官方原版

下载之后,双击运行进行安装。
安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。fcgiext.ini文件是它的配置文件,可以直接修改。如图:

003611s47s61hp6pr50cc4


同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。如图:

 

0036102etztqn2yz8t4bvu.png.thumb_


二、PHP
1.下载PHP
下载地址:http://windows.php.net/download/(推荐PHP 5.2.17的ZIP压缩包版本)

 

003608qy43ciqyttf8f122.png.thumb_


那Non Thread Safe是什么?

Non Thread Safe就是非线程安全;

Thread Safe 是什么
?
Non Thread Safe 是线程安全;


无须Zend Optimizer 请下载非线程安全版

需要Zend Optimizer 请下载线程安全版

注:微软的说法是 fastcgi使用非线程安全版PHP执行效率会更高,也推荐的是非线程安全版,但是很多商业程序是用zend加密了的,因此按照你的实际情况来下载php包。
文件下载完成后,对文件进行一次病毒扫描,以防意外,毕竟小心使得万年船,服务器不是别的,如果中毒那损失可就大了。

2.安装PHP
下载后解压到所需目录,不建议将php装在C盘,因为我是用的虚拟机做测试,所以我将PHP装在了c盘,如果你的安装路径不同,请自行修改以下提及到的对应路径。该目录需要给予user读取运行权限,我都是everyone的。如图:

 

003607all0aqv6qjlaj88z


c:\php目录下的所有dll文件复制到C:\windows\system32下(Windows2000系统为C:\winnt\system32,下同),如果已经有若干同名文件存在,覆盖即可。

3.注册 PHP 到 FastCGI
自动注册
在命令行下运行

  1. cscript C:\WINDOWS\system32\inetsrv\fcgiconfig.js -add -section:”PHP” -extension:php -path:”d:\php\php-cgi.exe”

复制代码


这里也可以手动修改
C:\WINDOWS\system32\inetsrv\fcgiext.ini
末尾添加

  1. php=PHP
  2. [PHP]
  3. ExePath=d:\php\php-cgi.exe

复制代码

 

最后那里(d:\php\php-cgi.exe)需要改为你php-cgi.exe所在目录
(注:假若已经将WScript.Shell组件反注册了,那么可能没法执行成功,会提示运行错误,服务器不能创建对象,要再次注册c:\windows\system32\wshom.ocx)
提示:C:\WINDOWS\system32\inetsrv\fcgiconfig.js(1348, 5) (null): 0xFFFFFFDF

关于配置FastCGI中的一些错误?

手动注册
打开 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.

我个人的理解是,只要“Web 服务扩展”里的 FastCGI Handler 为允许时,在加载 fcgiext.dll 时,会读取 fcgiext.ini 配置文件的内容,根据里面的配置为每个网站提供映射。
在 [Types] 下添加以下配置:

 

 

  1. [Types]
  2. php=PHP
  3. [PHP]
  4. ExePath=c:\PHP\php-cgi.exe

复制代码


如图:

 

0036064o31xogc91cb4bwo


这里要用:“\”不能用“/”
php表示扩展名,PHP是配置节名称,以[PHP]定义。 (ExePath=写你自己的安装的目录)
4.配置
PHP.ini
C:\PHP目录下有两个 ini 文件,php.ini-dist 和 php.ini-recommended。建议使用php.ini-recommended, 因为在该文件中优化了性能和安全。先将php.ini-recommended重命名为 php.ini(还是在当前目录中),再用文本编辑软件打开这个php.ini ,请仔细阅读该文件中的注释,因为它从 php.ini-dist修改而来,会对设置产生较大的影响。(建议使用Notepad2、EditPlus、UltraEdit等各种支持语法高亮显示 的文本编辑软件)。

找到
extension_dir = “./”
将其路径指到你的PHP目录下的扩展功能目录中,我的PHP对应修改为extension_dir = “c:\PHP\ext”

再在D盘下建立文件夹,并命名为upload_tmp 并给予读、写权限,不然后期会出错!

找到 ;upload_tmp_dir =
将 ;upload_tmp_dir = 该行的注释符(前面的分号“;”)去掉,使该行在php.ini文档中起作用。
upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个决定路径。
这里我设置为upload_tmp_dir = “d:/upload_tmp/” (这里就是我前面建立的文件夹)

找到 ;fastcgi.impersonate = 1 把前面的“;”去掉
改为 fastcgi.impersonate = 1
找到 short_open_tag= Off 改为 short_open_tag= On
搜索 ; Windows Extensions,定位到php.ini文件的extension,将下面列出的常用扩展前面的分号注释符去掉:

  1. ; extension=php_curl.dll
  2. ; extension=php_gd2.dll
  3. ; extension=php_ldap.dll
  4. ; extension=php_mbstring.dll
  5. ; extension=php_exif.dll
  6. ; extension=php_mysql.dll
  7. ; extension=php_mysqli.dll
  8. ; extension=php_sockets.dll
  9. ; extension=php_xmlrpc.dll

复制代码


特别提示:Exif扩展是用来显示图片的exif信息的,因该扩展需要mbstring支持,所以将extension=php_exif.dll这一行移动到extension=php_mbstring.dll一行的下面。

;date.timezone =
去掉前面的分号注释符,这里将其设置为
date.timezone = Asia/Shanghai
找到下面

[Date]
; Defines the default timezone used by the date functions
; date.timezone =

更改为并去除前面的“;”:

[Date]
; Defines the default timezone used by the date functions
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(中华人民共和国)。
查找:;session.save_path = “/tmp”
将前面的分号注释符去掉,这里将其设置为session.save_path = “D:/upload_tmp” (这里就是我前面建立的文件夹)

查找 ; cgi.force_redirect = 1 修改为 ; cgi.force_redirect = 0
查找 ; cgi.fix_pathinfo=0 修改为 ; cgi.fix_pathinfo=1
查找magic_quotes_gpc,更改为
magic_quotes_gpc=Off
查找short_open_tag,更改为
short_open_tag=On
查找safe_mode=Off,更改为
safe_mode=On
查找max_execution_time = 30,更改为
max_execution_time = 600
查找max_input_time = 60,更改为
max_input_time = 600
查找memory_limit = 8M ,更改为
memory_limit = 20M
查找display_errors = On,更改为
display_errors = Off
查找post_max_size = 8M,更改为
post_max_size = 20M
查找upload_max_filesize = 2M,更改为
upload_max_filesize = 20M
查找session.auto_start = 0,更改为session.auto_start = 1

5.配置网站
执行DOS命令
cd C:\WINDOWS\system32\inetsrv
cscript fcgiconfig.js -set -section:”PHP” -InstanceMaxRequests:10000
cscript fcgiconfig.js -set -section:”PHP” -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:10000
FastCGI配置更加详细的地址?《《《《《《《《《《《《《《
打开IIS管理器,右键网站 => 属性 => 主目录 => 配置 => 添加,如下图配置:

 

003606di4h8rcrv4arhli2


可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll
先运行c:\PHP\php-cgi.exe如果能进入命令窗口并只有光标,说明FastCGI能正常调用php-cgi,否则会提示错误,这点对使用微软的fastcgi模式很重要。

 

003606dbv4w11zun34v850


修改完在IIS上或者命令提示符运行iisreset命令重启IIS服务,这步很重要!
net stop w3svc
net stop iisadmin
net start w3svc

 

00360549vzsriez9hlrbd5.png.thumb_


写个 .php 测试页测试下吧

  1. <?php
  2. phpinfo();
  3. ?>

复制代码



然后访问这个文件,如果看到php详细信息页面,就说明你的服务器可以跑 php 了。OK完工

 

003603hv3obtb31xtmxzxp.png.thumb_

 

转载请注明:昆山SEO服务,专注企业网络营销-李麟 » IIS6.0+PHP5.2.17+FastCGI+MySQL

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址