麒麟桌面系统V10 SP1安装php的达梦数据库扩展
一、安装达梦数据库(如果该web环境不安装,需要从已经安装的环境里拷贝驱动文件,注意系统架构和php版本的适配性)
1. 参考https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html的步骤安装数据库
二、安装dm扩展
1. 从本机或其他同系统架构的主机上的达梦安装目录拷贝驱动程序到php的扩展目录,以本机安装达梦数据库为例,根据本机的php版本为7.3.33 NTS(lnmp一键安装的php),选择与相应的库文件:
sudo cp /home/dmdba/dmdbms/drivers/php_pdo/libphp73_dm.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
sudo cp /home/dmdba/dmdbms/drivers/php_pdo/php73_pdo_dm.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
2. 从本机或其他同系统架构的主机上的达梦安装目录拷贝bin目录下的动态库文件到系统的动态库目录,否则报错:PHP Fatal error: Unable to start DM module in Unknown on line 0
注意:
- 此处达梦官网文档上的指导是错误的;
- 拷贝时如果直接cp不能识别通配符*可以用sh -c的方式来执行命令
sudo sh -c "cp /home/dmdba/dmdbms/bin/*.so /usr/lib"
sudo sh -c "cp /home/dmdba/dmdbms/bin/*.so /usr/lib64"
3. 在/usr/local/php/etc/php.ini,添加上以下配置并保存:
# 此部分不完全与官网的配置一致
# 不要[PHP_DM]模块的配置,将extension的配置直接跟其他的动态库放在一起
...
extension=oci8.so
extension=pdo_oci.so
extension=libphp73_dm.so
extension=php73_pdo_dm.so
# dm模块配置与官网一致
[dm]
dm.port=5236
; ; 是否允许持久性连接
dm.allow_persistent = 1
; ; 允许建立持久性连接的最大数. -1 为没有限制.
dm.max_persistent = -1
; ; 允许建立连接的最大数(包括持久性连接). -1 为没有限制.
dm.max_links = -1
; ; 默认的主机地址
dm.default_host = localhost
; ; 默认登录的数据库
dm.default_db = SYSTEM
; ; 默认的连接用户名
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
4. 执行命令php -m,确认已经安装上了达梦扩展模块
it0@it0-pc:~$ php -m | grep DM
DM
PDO_DM