本文系统版本为 Windows 7 旗舰版 SP1 64 位。其他配置版本请详见下文。
IIS 7.0:
windows 系统自带 IIS,不过需要在“控制面板-程序-打开或者关闭 windows 功能”中打开,由于目前 IIS 支持与 PHP 协同工作使用 FastCGI 方式,所以需要在 IIS 功能子目录下勾选 CGI 选项。
本篇教程同样适用于 IIS 8。
IIS 对 PHP 的支持可以采用三种模式,其中 FastCGI 方式性能最佳,也是目前的主流和发展方向,故本文只对该模式的配置方式做说明。如果确实需要使用 ISAPI 方式,则相应的需要勾选对应的功能选项。
校验:浏览器中输入 http:127.0.0.1,打开下图,说明 IIS 配置成功。
安装完成后请将安装目录下的 bin 文件夹添加到系统环境变量。
将下载的 PHP 压缩包解压至硬盘,比如C:\
打开达梦安装目录 bin 文件夹,复制 php54_dm.dll 文件至 PHP 安装目录 ext 文件夹内。(如果使用 pdo 方式,则需要添加 pdo54_dm 模块)
将 PHP 安装目录下的 php.ini-development 另存为 php.ini。
打开 php.ini,查找 extension_dir,修改参数为 PHP 安装目录下 ext 文件夹的路径。
添加扩展模块 php54_dm:(如果使用 pdo 方式,则需要添加 pdo54_dm 模块)
前面有分号的表示未启用。
在 ini 文件最后添加 DM 默认设置项:(此步骤可选;参数值如库名、用户名、端口号等请视具体情况修改)。
[dm]
; 是否允许持久性连接
dm.allow_persistent = 1
; 允许建立持久性连接的最大数.-1 为没有限制.
dm.max_persistent = 3
; 允许建立连接的最大数(包括持久性连接).-1 为没有限制.
dm.max_links = 3
; 默认的主机地址
dm.default_host = localhost
; 默认登录的数据库
dm.default_db = DAMENG
; 默认的连接用户名
dm.default_user = SYSDBA
; 默认的连接口令.
dm.default_pw = SYSDBA
;连接超时,这个参数未实际的用到,等待服务器支持
dm.connect_timeout = 10
;对于各种变长数据类型,包括大字段,每列最大读取的字节数。如果它设置为0或是小于0,那么,读取变长字段时,将显示NULL值
dm.defaultlrl = 4096
; 是否读取二进制类型数据,如果它设置为0,那么二进制将被NULL值代替
dm.defaultbinmode = 1
;是否允许检察持久性连接的有效性,如果设置为ON,那么当重用一个持久性连接时,会检察该连接是否还有效
dm.check_persistent = ON
;连接的端口号
dm.port = 5236
打开 IIS 管理器,打开“处理程序映射”选项。
在打开的页面右侧中双击添加模块映射选项。
设置如下,其中红框中参数请根据你的 php 安装目录自行设置。
设置默认文档,添加 index.php 以及 default.php。
配置完毕!
保证 test_php 处理程序映射中 PHP FastCGI 的条目类型为继承。
在网站主目录(如本例中 C:\php_test)下增加文件 index.php,内容:
<?php
try {
$pdo = new PDO("dm:host=127.0.0.1","SYSDBA","SYSDBA");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$rs = $pdo->query("SELECT LEVEL,LEVEL*10 CONNECT BY LEVEL <6;");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
echo "SELECT LEVEL,LEVEL*10 CONNECT BY LEVEL <6;";print_r($result_arr);echo "QUIT!";
$pdo=null;
}
catch(PDOException $e){
print( "Error: " . $e->getMessage())."\n";
}
?>
校验:浏览器中输入 http://localhost:8088/,打开下图,说明 FastCGI 配置成功。
修改网站主目录(如本例中 C:\php_test)中文件 index.php,内容如下:(注:参数值如库名、用户名等请视具体情况修改)
<?php
/* 连接数据库 */
$link = dm_connect("localhost", "SYSDBA", "SYSDBA")
or die("Could not connect : " . dm_error());
print "已连接数据库 DM:</br>";
/* 执行 SQL 查询 */
$query = "select * from v\$version;";
$result = dm_query($query) or die("Query failed : " . dm_error());
print "执行查询数据: </br>";
/* 在 HTML 中打印结果 */
print "<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\">\n";
while ($line = dm_fetch_array($result, DM_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
/* 释放资源 */
dm_free_result($result);
/* 断开连接 */
dm_close($link);
?>
SUCCESS!
文章
阅读量
获赞