win2003+IIS6+PHP5.3.8+MSSQL2008的安装配置及连接

作者:匿名 hihi 来源:ChinaZ源码报导 浏览: 2011-11-8 15:29:44 字号:
[摘要]PHP5.3.x发布的版本不再支持ISAPI模式,压缩包里也不再提供php5isapi.dll这个文件。在IIS6上使用高版本PHP5.3.x,必须安装fastCGI扩展,本文介绍win2003+IIS6+PHP5.3.8+MSSQL2008的安装配置及连接。

  其实网上的方法也正确,只是在注册PHP 到 FastCGI时内容不全。新版本的PHP5.3通过以往老方法已经不能在IIS上安装了(因为现在php 5.3已经不支持ISAPI了,而是用FastCGI了),现在给出在IIS上安装PHP5.3以后版本的教程。

  首先肯定是安装IIS了,具体安装方法可查看:http://down.chinaz.com/server/201102/11_1.htm

  然后下载并安装IIS FastCGI,下载地址:http://www.iis.net/download/fastcgi。选择 x86或者download x86,下载下来名称为 fcgisetup_1.5_rtw_x86.msi。如下图

  安装成功后会在C:\WINDOWS\system32\inetsrv\目录下搞出了5个文件,如下图

  这个时候在IIS 6的"WEB服务扩展"里就多出了一个FastCGI Handler

  再下载安装IIS下的PHP5.3.8,下载地址http://windows.php.net/download/,(注意IIS下要选择VC9的版本)解压到所需目录,该目录需要给予user读取运行权限。

下面是要配置和修改的内容:

  • 如果你的PHP5.3.8是安装版(即以.msi结尾的)安装完所有的软件就可以直接测试运行,安装过程中已经帮你配置完成。
  • 如果你的PHP5.3.8是压缩版(即以.zip结尾的)安装完后要作以下配置。

  1、环境变量修改。我的电脑》属性》高级》环境变量》系统变量 Path=E:\PHP\;(加到最前面,如果没有可以自己建一个。)

  2、FastCGI安装目录内的修改(注册PHP 到 FastCGI)

打开C:\WINDOWS\system32\inetsrv\fcgiext.ini文件,在文件最后加上下面的语句:

[Types](这个是文件原来就有的,在[Types]后面加上下面的语句就可以,要全部哦不然会报错的。)
php=PHP

[PHP]
ExePath=E:\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:E:\PHP\

  3、PHP.ini的修改PHP5.3.8安装目录下是没有PHP.ini这个文件的,只有php.ini-development和php.ini-production,我们把php.ini-development改为php.ini(当然如果你怕有错可以先备份一下)。

  注明:首先建一个文件夹命名为TMP,位置随意我这里放在E:\PHP\tmp。 (upload_tmp_dir会用到,upload_tmp_dir是用来定义上传文件存放的临时路径,这里可以修改并给它定义一个绝对路径,同时需要有读、写权限。)。用搜索(快捷键:Ctrl+F)的方式把下面的关键字改成现在的值:

short_open_tag = Off    (这个它本来默认就是这样我们就不要改了。)
把;upload_tmp_dir =改为upload_tmp_dir="E:\PHP\tmp"
把;cgi.force_redirect = 1改为cgi.force_redirect=0
把;fastcgi.impersonate = 1;改为 fastcgi.impersonate=1;
把; extension_dir = "ext"改为extension_dir="E:\PHP\ext"
把;date.timezone =改为date.timezone =PRC(如果不修改date.timezone,打开网页的时候蛮有可能提示500错误。也有人把值改为Asia/Shanghai,我没试过你们可以试试。)

  在Windows Extensions中去除扩展前面的分号(;):

; 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

4.Internet信息服务(IIS)管理器的修改

1)网站》属性》主目录》配置》添加可执行文件=C:\WINDOWS\system32\inetsrv\fcgiext.dll。扩展名= .php。动作》限制为=GET,HEAD,POST。整个操作如图:


2)网站》属性》文档》添加默认内容=index.php。这里全部配置好了,一定要把IIS服务重启一下。

  5、测试(一定要重启IIS服务)最后用文本写一段测试代码:

<?php
phpinfo();
>

  保存为index.php,名字随便取只要后缀是.php就可以。把index.php(你写的文件)放到根目录下,我这里是C:\Inetpub\wwwroot,然后在浏览器中输入http://127.0.0.1/index.php或http://localhost/index.php(两者随便一个就可以效果一样)就可以得到返回的信息了。返回的信息,如图:


注意:没测试成功的请不要进行以下操作 

  windows系统下,PHP5.3以上的版本已经不支持mssql扩展,所以如果你需要和sql server通信需要到http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx自行下载微软提供的The SQL Server Driver for PHP。

  下载后解压缩,将所有的.dll文件拷贝到php安装目录的ext文件夹中,接下来打开php.ini,添加以下语句打开php_sqlsrv和php_pdo_sqlsrv扩展:

  注明:其实没有必要拷贝所有,只要拷贝你要用的就可以了。一般的vc6用于apache,而vc9用于IIS,只要拷贝对应的两个文件再再PHP.ini中添加一下就可以了。 至于ts和nts是线程安全和非线程安全,这个只要根据php目录下的php5ts.dll或php5nts.dll来选择。

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts_vc6.dll
[PHP_SQLSRV]

  这里的53表示的是php5.3,如果你的是5.2版,就改成52,如果你的PHP版本是线程安全的,那么你的PHP安装目录下应该有一个php5ts.dll,与这里的两行语句对应,如果是php5nts.dll,那么上面的语句应该是:

[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_nts_vc6.dll
[PHP_SQLSRV]

  压缩包里有各个版本对于的dll文件,大家可以去仔细核查。

  开启扩展后,重启apache,这样就可以连接sqlserver了,但是还有一点要注意,如果你没有安装Microsoft SQL Server 2008 R2 Native Client,必须去http://msdn.microsoft.com/en-us/library/cc296170(SQL.90).aspx下载安装,因为微软的这个扩展包需要这个支持。

  一切妥当之后,就可以写php代码了,如果你下载了The SQL Server Driver for PHP,那么在解压缩后的文件夹里有一个帮助文档,你可以很容易的找到示例,这里介绍几个简单的例子。

例①:ind.php(文件名随意,只要后缀是.php,文件放到根目录下C:\Inetpub\wwwroot)

<?php
//本地测试的服务名
"(local)";
//使用sql server身份验证,参数使用数组的形式,一次是用户名,密码,数据库名
//如果你使用的是windows身份验证,那么可以去掉用户名和密码
$connectionInfo = array( "UID"=>"root",
"PWD"=>"root2010",
"Database"=>"master");

$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
echo "Connection established.\n";
}
else
{
echo "Connection could not be established.\n";
die( print_r( sqlsrv_errors(), true));
}
?>

  保存,然后在浏览器中输入http://127.0.0.1/ind.php。这个例子本来就有,但作者在添加程序时把双引号写成中文的了,只要把双引号改成英文状态的就可以运行了。

例②:aa.php(文件名随意,只要后缀是.php,文件放到根目录下C:\Inetpub\wwwroot)

<?php

$Host = "192.168.1.2"; //数据库服务器地址 127.0.0.1
"sa"; //数据库用户名
$UserPasswd = "G44hHHUJ^&*(34FEDFSSDJSSCCSSdfssfsszdF54134";//数据库用户密码
"user"; //数据库名

$connectionInfo = array("UID"=>$UserName, "PWD"=>$UserPasswd, "Database"=>$DbName);
$conn = sqlsrv_connect( $Host, $connectionInfo);

if( $conn == false)
{
echo "连接失败!";

die( print_r( sqlsrv_errors(), true));
}

$query = sqlsrv_query($conn, "SELECT TOP 100 Name,Sex,PWD FROM userInf ");
if( $query === false)
{
echo "Error in query preparation/execution.\n";
die( print_r( sqlsrv_errors(), true));
}

while($row = sqlsrv_fetch_array($query,SQLSRV_FETCH_ASSOC))
{
echo $row['Name']."-".$row['Sex'].":".$row['PWD']."<br/>";

}
?>

保存,然后在浏览器中输入http://127.0.0.1/aa.php。这里的数据库你可以用自己的做替换。

sssss
Tags: windows   win2003   php5.3.8   mssql2008  
责任编辑:190
编辑推荐排行