为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达蒙8
【操作系统】:银河麒麟v10
【CPU】:
【问题描述】*:
php7.2服务器安装达蒙数据库,现在要安装php扩展
php72_pdo_dm.so
php72ts_pdo_dm.so
都复制到了扩展目录
扩展增加上去了
我安装的是dm8_20200907_FTarm_kylin4_64_ent_8.1.1.126,和版本有关系吗?
与版本关系不大。
建议先注释掉达梦的配置,查看一下php自身是否安装了PDO模块:
问题已解决。线下已重现并解决问题。
达梦PDO接口适配说明(CentOS 7/Kylin V10):
方法一:
/etc/php.ini中添加配置:
extension=pdo.so
extension=php72_pdo_dm.so
然后修改/etc/php.d/20-pdo.ini
;extension=pdo
方法二:
添加文件/etc/php.d/30-pdo_dm.ini
; Enable pdo_dm extension module
extension=php72_pdo_dm.so
[root@FT105126 ~]# php -m | grep PDO
PDO
PDO_DM
至此,达梦PDO模块已经能正确加载到PHP中。
某些版本/操作系统中,httpd/php-fpm服务不能正常启动,会报错:
NOTICE: PHP message: PHP Fatal error: Unable to start PDO_DM 。
分析发现,这些版本的httpd/php-fpm启动时,没有加载系统环境变量$LD_LIBRARY_PATH。由于达梦PDO模块依赖于其他的达梦模块,导致服务无法正常启动。
[root@FT105126 ~]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
[root@FT105126 ~]# service php-fpm restart
Redirecting to /bin/systemctl restart php-fpm.service
以上为个人解决方法,欢迎分享您的方法!
如果达梦数据库不是安装在跟PHP同一台机器上呢? 根本就没有DMDBMS目录了,那设置环境变量也就没有用了啊? 也就是说,要怎么连接远程的达梦数据库呢?
我这边和DM_805100一样的问题,达梦数据库是单独一台服务器,PHP项目是单独一台服务器,操作系统是银河麒麟V10桌面版,数据库达梦8企业版,php7.2,cpu华为鲲鹏系列,目前也是卡在达梦php扩展这了,一直安装不上。
1.从您已经安装达梦数据库的服务器上面,复制$DM_HOME/drivers/dpi/目录下所有文件至php应用所在服务器目录(如/home/dm_bin)。
2.然后其他操作,依照楼上所述,需要修改的是,设置LD_LIBRARY_PATH=/home/dm_bin/:
您好
1.达梦安装包提供的两种对应7.2版本的扩展:
php72_pdo_dm.so NTS版本
php72ts_pdo_dm.so TS版本
2.根据您提供的截图,可以看出你的php版本为php7.2 NTS版本。
所以,配置应修改为:
extension=php72_pdo_dm.so
3.如果对应的dm执行码目录没有加入到系统环境变量,请设置
export LD_LIBRARY_PATH=$DM_HOME/bin:$LD_LIBRARY_PATH