RedHat7.6+LNMP1.6配置PHP5.3连接达梦数据

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是否正确配置或是否生效

 


请使用浏览器的分享功能分享到微信等