操作系统:麒麟v10
前言:
一开始php连接达梦,修改php.ini的扩展配置之后无法启动php,错误代码如下
Unable to start PDO_DM module in Unknown on line 0
百度了许久找到的解决办法都是修改环境变量后,ldconfig重置动态库,但是重置完许多命令丢失,重启后系统直接崩溃,百度良久找不到解决办法,后来发现不应该直接将环境变量指向达梦下的bin目录。以下是我总结出来的方法。
一、将原有会报错的环境变量删除
cd /etc/ld.so.conf.d/
1.1 进入存有环境变量的文件夹,将dameng.conf删除(根据自己会办错的文件,文件内一般是指向达梦安装目录下的bin)
1.2 rm -rf dameng.conf
1.3 ls查看是否删除成功,看到dameng.conf消失即可。
二、编辑环境
2.1 vim /etc/profile.d/dm.sh 创建dm.sh 并在dm.sh文件内根据以下格式添加:
格式为:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/php安装路径/dm/
假设php安装路径为:/www/server/php/74
2.2 查看在php安装路径下是否有dm文件夹,若没有则新建dm文件夹
cd /www/server/php/74
ls
mkdir ./dm
三、将达梦安装路径目录下所有的头为libdm*复制到php安装目录下的/dm/
cp /dm安装路径/*/libdm* /php安装路径/dm/
假设达梦安装目录为:/dm8 php安装目录为/www/server/php/74/
例:cp /dm8/*/libdm* /www/server/php/74/dm/
四、设置环境变量
4.1 进入/etc/ld.so.conf.d下新建文件dm.conf
vim /etc/ld.so.conf.d/dm.conf
4.2 将php安装目录/dm/ 写入dm.conf
4.3 重置动态库,该操作可能会导致系统再次崩溃如果有条件请先设好还原点或者快照
ldconfig
五、复制文件
将/dm安装目录/drivers/php_pdo下对应版本的libphp**_dm.so 和php**_pdo_dm.so
复制到/php安装目录/src/ext/zip/modules 下
此处的**为你安装的php版本 5.3版本就复制libphp53_dm.so 和php53_pdo_dm.so
此处的**为你安装的php版本 7.4版本就复制libphp74_dm.so 和php74_pdo_dm.so
六、重启php
6.1重启你的php,若不是若未使用宝塔请用命令行重启
6.2 修改你的php.ini
在最后面加上
extension = 刚刚复制到php安装目录下的php**_pdo_dm.so路径
例:extension = /www/server/php/74/src/ext/zip/modules/php74_pdo_dm.so
保存
这样就可以正常进入系统了