梦飞数据中心 > 帮助中心 > 系统配置 > PHP支持空间的配置方法Windows 2003+IIS6+PHP5.4.43

PHP支持空间的配置方法Windows 2003+IIS6+PHP5.4.43

一般在已经安装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版本。
    VC9版本是使用Visual Studio 2008编译器编译,如果PHP是用IIS来架设,那就选择VC9版本。

    选择的原则:1。在windows下使用Apache+PHP的,请选择VC6版本;
                2。在windows下使用IIS+PHP的,请选择VC9版本;

  ②如何选择PHP5.4.10的Thread Safe版本和Non Thread Safe版本
  从字面上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

第二部分:、再来看PHP的两种执行方式:ISAPI和FastCGI。

    ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接口。ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

    FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

    FastCGI已经集成于IIS7也支持IIS6,在IIS6中的安装方法以下详述。

------------------------------------------------------------------------------

注意:

    ①PHP5.4.10 是不能在IIS6上面通过ISAPI扩展运行的,而且在PHP5.4.10下载解压后的文件里面也没有php5isapi.dll,取而代之的是php5nsapi.dll。

    PHP程序从PHP5.3以后的版本就不再用ISAPI进行扩展在IIS里运行了,所以PHP5.4.10 当然就更没有php5isapi.dll了,这也是有的网友为什么在PHP5.4.10 中找不到php5isapi.dll的原因。

  我们有没有什么办法让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.)

下载页面为:

Windows <wbr>2003+IIS6+PHP5.4.10配置PHP支持空间的方法
 

下载的文件为FastCGIIIS6.26FastCGIIIS6.exe,下载之后,双击进行安装,出现如下图所示的画面:

Windows <wbr>2003+IIS6+PHP5.4.10配置PHP支持空间的方法
关键是这一步,这一步不能点击我接受,而要点击上面的兰色文字“直接下载链接”它就会到http://download.microsoft.com/download/E/0/C/E0C0709A-66E5-4113-9A6C-A5F65BF6717D/fcgisetup_1.5_x86_rtw.msi去直接下载。

安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图:

Windows <wbr>2003+IIS6+PHP5.4.10配置PHP支持空间的方法

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

Windows <wbr>2003+IIS6+PHP5.4.10配置PHP支持空间的方法

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_gd2.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_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
 extension=php_mysql.dll
 extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11gR2 Instant Client
;extension=php_openssl.dll
 extension=php_mcrypt.dll
 extension=php_pdo.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就可以下载到安装版,

因为安装版自动添加了!】

右键网站 => 属性 => 主目录 => 配置 => 添加,如下图配置:

Windows <wbr>2003+IIS6+PHP5.4.10配置PHP支持空间的方法

可执行文件路径:C:\WINDOWS\system32\inetsrv\fcgiext.dll

全部配置好了,一定要把IIS服务重启一下。

6. 新建一个 phpinfo.php 文件,内容为:

<?php
  phpinfo();
  ?>

 打开IE浏览器,输入:http://www.domain.com/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 了。

Windows <wbr>2003+IIS6+PHP5.4.10配置PHP支持空间的方法

使用 Windows 2003+IIS6+PHP5.4.10配置PHP支持空间的方法所创建的Discuz 2.5也正常使用,一切OK!

(责任编辑:梦飞科技) 部分网站内容及图片来源于网络,如有侵权或违规内容请联系管理员删除!