PHP环境安装达梦数据库驱动实操
PHP环境安装达梦数据库驱动实操
一、环境准备
-
达梦数据库安装
- 从达梦官网下载对应系统版本的DM8开发版或企业版,完成安装并确保数据库服务正常运行。
- 安装后需记录数据库的安装路径(如Windows默认路径为
D:\dmdbms
,Linux为/dm/server
),后续配置会用到。
-
PHP环境要求
- PHP版本需与达梦驱动兼容(推荐7.2+,需确认线程安全类型:TS或NTS)。
- 通过
phpinfo()
查看PHP扩展目录(extension_dir
)及线程安全状态(Thread Safety
)。
二、Windows系统安装步骤
1. 获取达梦PHP驱动文件
- 在达梦安装目录的
drivers/php_pdo
子目录下找到对应PHP版本的驱动文件(如php73_dm.dll
和pdo73_dm.dll
),注意区分线程安全(TS)与非线程安全(NTS)版本。
2. 配置PHP扩展
- 复制驱动文件:将
php73_dm.dll
和pdo73_dm.dll
复制到PHP的ext
目录(如D:\php7.3\ext
)。 - 修改php.ini:
在php.ini
末尾添加以下内容(路径替换为实际驱动文件路径):extension=D:\dmdbms\drivers\php_pdo\php73_dm.dll extension=D:\dmdbms\drivers\php_pdo\pdo73_dm.dll
- 添加依赖库:将达梦的
bin
目录(如D:\dmdbms\bin
)添加到系统环境变量Path
中,避免提示dmcalc.dll
缺失。
3. 验证驱动加载
- 重启Web服务器(如Apache/Nginx)或命令行执行
php -m
,检查输出中是否包含dm
和pdo_dm
模块。 - 若报错“Unable to start DM module”,需检查驱动文件版本与PHP是否匹配,或依赖库路径是否正确。
三、Linux系统安装步骤
1. 解决依赖冲突
- 备份并删除冲突的so文件:
达梦的部分动态库(如libcrypto.so
)可能与系统库冲突,需执行:
删除对应的软链接。cp -r /dm/server/bin /dm/server/bin3 cd /dm/server/bin3 rm -rf libcrypto.so libssl.so libtiff.so libxml2.so libxqilla.so
2. 配置环境变量
- 编辑
/etc/profile
,添加以下内容:export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm/server/bin3" export DM_HOME="/dm/server" export PATH="$PATH:$DM_HOME/bin:$DM_HOME/tool"
- 执行
source /etc/profile
使配置生效。
3. 加载驱动到系统库
- 创建配置文件
/etc/ld.so.conf.d/dameng.conf
,写入达梦库路径:/dm/server/bin3
- 执行
ldconfig
更新库缓存。
4. 配置PHP扩展
- 在
php.ini
中添加:[PHP_DM] extension=/dm/server/drivers/php_pdo/libphp72_dm.so extension=/dm/server/drivers/php_pdo/php72_pdo_dm.so
- 重启PHP-FPM或Web服务,通过
php -m
验证驱动加载。
四、连接达梦数据库示例代码
1. 使用PDO方式连接
<?php
$dsn = "dm:host=127.0.0.1;port=5236;dbname=DAMENG";
$user = "SYSDBA";
$password = "SYSDBA";
try {
$pdo = new PDO($dsn, $user, $password);
echo "连接达梦数据库成功!";
// 执行查询示例
$stmt = $pdo->query("SELECT * FROM SYSOBJECTS");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
print_r($row);
}
} catch (PDOException $e) {
die("连接失败: " . $e->getMessage());
}
?>
2. 使用达梦原生函数连接
<?php
$conn = dm_connect("127.0.0.1:5236", "SYSDBA", "SYSDBA");
if ($conn) {
echo "连接成功!";
dm_exec($conn, "CREATE TABLE test (id INT, name VARCHAR(20))");
dm_close($conn);
} else {
echo "连接失败!";
}
?>
五、常见问题排查
-
驱动未加载
- 检查
php.ini
中扩展路径是否正确,确保文件权限可读。 - 确认PHP版本与驱动版本匹配,线程安全类型一致。
- 检查
-
依赖库缺失
- Windows需将达梦
bin
目录加入Path
;Linux需通过ldconfig
更新库路径。
- Windows需将达梦
-
连接超时或拒绝
- 检查达梦服务是否启动,防火墙是否开放端口(默认5236)。
六、参考文档
- 达梦官方PHP驱动文档:https://eco.dameng.com/document/dm/zh-cn/faq/faq-php.html
- Windows环境详细配置:CSDN博客:PHP7.3加载达梦驱动
- Linux冲突库处理:CSDN博客:PHP加载达梦驱动
通过以上步骤,可确保PHP与达梦数据库的驱动正确安装及连接。建议在操作前备份系统配置,并根据实际环境调整路径参数。