RedHat7.6+LNMP1.6 配置PHP5.3连接达梦数据
环境信息:
客户端信息:
系统版本:Red Hat Enterprise Linux Server release 7.6 (Maipo)
达梦客户端版本:V7.6.0.161-Build(2019.05.23-107264)ENT
LNMP 版本:lnmp1.6
IP:192.168.100.5
数据库信息:
IP:192.168.100.2
PORT:5236
DB_NAME:DAMENG
配置达梦客户端
安装DM客户端
注:此处使用root用户进行安装,如果是数据库服务端进行安装请务必使用dmdba用户进行安装部署
[root@localhost ~]# ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:c
解压安装程序..........
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15027
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15027
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
。。。。。。。。。。。。
安装结束
DM 客户端连接数据库服务器测试
[root@localhost bin]# cd /opt/dmdbms/bin
[root@localhost bin]# ./disql SYSDBA/SYSDBA@192.168.100.2:5236
服务器[192.168.100.2:5236]:处于普通打开状态
登录使用时间: 5.572(毫秒)
disql V7.6.0.161-Build(2019.05.23-107264)ENT
SQL>
配置DM客户端的环境变量
[root@localhost bin]# vi /root/.bash_profile
export DM_HOME=/opt/dmdbms
export LD_LIBRARY_PATH=/opt/dmdbms/bin
PATH=$PATH:$HOME/bin:$DM_HOME/bin
export PATH
使修改的环境变量立即生效,经检查是否生效
(保险点可以退出root后重新登录)
[root@localhost bin]# source /root/.bash_profile
[root@redhat7 ~]# env | grep DM_HOME
DM_HOME=/opt/dmdbms
[root@redhat7 ~]# env | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/dmdbms/bin
[root@redhat7 ~]# env | grep PATH
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/dmdbms/bin

部署LNMP1.6
安装LNMP1.6
由于我们不需要使用MySQL,因此在安装过程中选择不安装
[root@localhost ~]# tar -zxf lnmp1.6-full.tar.gz
[root@localhost ~]# cd lnmp1.6-full/
[root@localhost lnmp1.6-full]# ./install.sh
+------------------------------------------------------------------------+
| LNMP V1.6 for RHEL Linux Server, Written by Licess |
+------------------------------------------------------------------------+
| A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux |
+------------------------------------------------------------------------+
| For more information please visit https://lnmp.org |
+------------------------------------------------------------------------+
....
中间检查和安装过程此处省略
Install lnmp takes 14 minutes.
Install lnmp V1.6 completed! enjoy it.
安装使用的时间根据网络情况不同而不同,这里耗时15分钟。
检查LNMP是否正常启动
若成功安装后Nginx和PHP会自动运行
[root@localhost lnmp1.6-full]# lnmp status
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
nginx (pid 31702) is running...
php-fpm is runing!
查看PHP版本及扩展模块路劲信息
在浏览器中输入http://192.168.100.5/phpinfo.php即可
PHP 版本
可以看到我们安装php是5.3.29,且Thread Safety为disable(NTS版本),那么我们选择dm的PHP模块时就需要选择文件名带有53且不带有ts的。

默认扩展模块路径为
可以看到默认扩展模块路径为:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626
为方便管理,下面会将路径进行修改。

创建扩展模块路径
[root@localhost php]# mkdir /usr/local/php/lib/php/extensions
拷贝DM的PHP模块到新建扩展模块路径
[root@localhost php]# cp /opt/dmdbms/drivers/php_pdo/libphp53_dm.so /usr/local/php/lib/php/extensions/
修改PHP参数
[root@localhost php]# vi /usr/local/php/etc/php.ini
在文件中加入如下信息
扩展路径:
extension_dir = "/usr/local/php/lib/php/extensions/"
扩展包名:
extension = libphp53_dm.so
DM 默认连接参数:
[dm]
; 是否允许持久性连接
dm.allow_persistent = 1
; 允许建立持久性连接的最大数. -1 为没有限制.
dm.max_persistent = -1
; 允许建立连接的最大数(包括持久性连接). -1 为没有限制.
dm.max_links = -1
; 默认的主库地址
dm.default_host = 192.168.100.2
; 默认的连接用户名
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
; 连接的端口号
dm.port = 5236
配置后如下:



重启PHP服务
配置完php.ini后需重启php服务
[root@redhat7 ~]# lnmp php-fpm restart
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Gracefully shutting down php-fpm . done
Starting php-fpm done
查看配置后的参数信息
扩展模块路径

DM 驱动默认设置信息

测试PHP连接DM数据库
编写测试PHP
编写PHP连接DM数据库获取数据库版本进行测试:
[root@redhat7 default]# vi /home/wwwroot/default/dm_version.php
内容如下:
header("Content-Type: text/html;charset=utf-8");
$link = dm_connect("192.168.100.2:5236", "SYSDBA", "SYSDBA") or die("Could not connect : " . dm_error());
$result = dm_query("SELECT BANNER FROM V\$VERSION WHERE BANNER LIKE '%Database%'") or die("Query failed : " . dm_error());
while ($line = dm_fetch_array($result, DM_ASSOC)) {
foreach ($line as $col_value) {
print($col_value);
}
}
dm_free_result($result);
/* 断开连接*/
dm_close($link);
测试结果

部署过程中遇到的报错及解决方法
报错一:
在启动PHP时报如下错误:
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Stoping LNMP...
Stoping nginx... done
Gracefully shutting down php-fpm . done
Starting LNMP...
Starting nginx... done
Starting php-fpm /etc/init.d/php-fpm: 行 53: 30267 段错误 (吐核)$php_fpm_BIN --daemonize $php_opts
failed
该错误是由于dmdbms/bin/libssl.so包导致的,将其移除或重命名即可。
报错二:
在启动PHP时报如下错误:
[root@redhat7 lnmp1.6-full]# lnmp php-fpm restart
+-------------------------------------------+
| Manager for LNMP, Written by Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?
Starting php-fpm [28-Oct-2019 16:07:14] NOTICE: PHP message: PHP Fatal error: Unable to start dm module in Unknown on line 0
failed
该报错说明LD_LIBRARY_PATH环境变量配置有问题,请检查LD_LIBRARY_PATH是否正确配置或是否生效