为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:Linux localhost.localdomain 4.19.90-17.ky10.aarch64 #1 SMP Sun Jun 28 14:27:40 CST 2020 aarch64 aarch64 aarch64 GNU/Linux
【CPU】:HUAWEI,Kunpeng 920
【问题描述】*:达梦数据库服务器和应用服务器不在一起的情况下,我去数据库服务器拿了驱动,去应用服务器安装php扩展,一直报错,
错误信息:
NOTICE: PHP message: PHP Fatal error: Unable to start DM module in Unknown on line 0
网上的一些方案都不行,已经尝试的方案:
1.把达梦数据库服务器中的安装的目录里的bin目录里的 libdmdpi.so 文件, 放入到 应用服务器的 /usr/lib 目录里
2.将达梦数据库服务器中的libcrypto.so文件拷贝到应用服务器的/usr/lib下
以上两种方法都未起到效果,还望官方支持一下!!!
您好,php-fpm问题,参考这里:https://eco.dameng.com/community/article/5e11cad3aba68613a95f5421a458a928
另外,可以看一下php-fpm的core文件,确认出错位置。
已定位解决。
两个问题:
1.第三方库冲突。达梦自带的openssl依赖包与php扩展模块中的openssl模块冲突。鉴于目前达梦对openssl扩展无具体版本需求,删除达梦的libssl.so、libcrypto.so即可解决。
2.达梦pdo接口依赖库不完整。由于依赖文件较多,只放一个dpi.so不够。解决方法:复制bin目录的所有so文件(比较粗放,后面会在社区给出最小依赖集合)。
上面所有问题解决以后,本来以为是OK,结果启动php-fpm的时候,失败了。还是提示无法启动PDO_DM扩展,但是
php -m 查看是没有问题的。所有模块都能正常加载了。
最终解决是百度了一下:
cd 到/etc/ld.so.conf.d目录,执行vim dm.conf。新建一个配置文件出来,里面的内容就填写达梦的bin目录。如:/home/dmdba/dmdbms/bin,然后报存。执行命令:ldconfig。同样你会看到一个xxxxx…不是符号链接的一个错误,这里可以忽略这个错误。
【百度原博主提到:动态链接库,具体这么解决为啥就可以,确实还是比较疑惑的。】
1.从您已经安装达梦数据库的服务器上面,复制$DM_HOME/drivers/dpi/目录下所有文件至php应用所在服务器目录(如/home/dm_bin)。
2.然后其他操作,依照楼上所述,需要修改的是,设置LD_LIBRARY_PATH=/home/dm_bin/
这样操作之后php-fpm 又提示报错 行 53: 400091 段错误 (核心已转储)$php_fpm_BIN --daemonize $php_opts