首页
站点统计
技术支持
友链
关于我
Search
1
CentOS7官方停止支持,yum源变更
229 阅读
2
苹果笔记本实现用户登录钉钉通知功能
220 阅读
3
麒麟操作系统安装达梦数据库DM8 V8版本
208 阅读
4
Ubuntu22.04配置vsftp服务
190 阅读
5
台式电脑DIY配置单之2024.06
186 阅读
默认分类
电脑3C
Linux运维
生活杂谈
游戏娱乐
Windows专题
网络互联
登录
Search
标签搜索
PHP
Linux
麒麟OS
Win11
电脑
Typecho
Mac OS
雪中悍刀行
Redis
Joe
windows
祝福
SHELL
Mysql
达梦数据库
阿里云
SSH
CentOS
域名转移
网络
清阳
累计撰写
37
篇文章
累计收到
13
条评论
首页
栏目
默认分类
电脑3C
Linux运维
生活杂谈
游戏娱乐
Windows专题
网络互联
页面
站点统计
技术支持
友链
关于我
搜索到
1
篇与
PDO
的结果
PHP8.2添加达梦数据库PHP PDO_DM扩展
PHP8.2添加达梦数据库PHP PDO_DM扩展环境描述系统环境如下:银河麒麟高级服务器操作系统V10 SP3 X86架构(X64架构同样适用)达梦数据库V8版本ISO安装镜像文件 这个需要在达梦官网下载php8.2 nts基于laravel 9dcat-admin由于银河麒麟操作系统V10基于CentOS8,并且无法安装epel-release源,更没办法使用Remi源,所以本次安装的PHP8.2假设我们是编译安装的。具体安装教程可以参考另外一篇文章:国产银河麒麟服务器版(Host)V10 编译安装PHP8.2.步骤概览PHP安装PDO_DM模块分为以下几步:本地安装达梦数据库V8客户端(服务端、混合安装均可),或者上传其他Linux系统上安装好的达梦数据库 bin目录,以及libphp82_dm.so、php82_pdo_dm.so两个文件这里包含了PDO_DM so模块依赖的达梦动态连接库设置系统动态链接库路径,新增第一步中自己安装或者拷贝过来的bin目录路径,并重载ldconfig拷贝PHP so模块文件到PHP扩展目录测试PDO_DM功能开始:本地安装达梦数据库V8客户端先从达梦官网下载iso程序镜像到/usr/local/src目录之后按照以下命令执行:[root@kylin-server-2 src]# cd /usr/local/src/ [root@kylin-server-2 src]# mkdir dmdbiso [root@kylin-server-2 src]# ls dm8_20240930_HG_kylin10_64.iso dmdbiso php-8.2.26 php-8.2.26.tar.gz [root@kylin-server-2 src]# pwd /usr/local/src [root@kylin-server-2 src]# mount -o loop dm8_20240930_HG_kylin10_64.iso dmdbiso/ mount: /usr/local/src/dmdbiso: WARNING: source write-protected, mounted read-only. [root@kylin-server-2 src]# ls dmdbiso/ 'DM8 Install.pdf' DMInstall.bin ###下面3行设置系统环境,为达梦数据库安装做准备 [root@kylin-server-2 src]# useradd dmdba [root@kylin-server-2 src]# export DM_INSTALL_TMPDIR=/usr/local [root@kylin-server-2 src]# cd dmdbiso/ [root@kylin-server-2 dmdbiso]# #开始安装 [root@kylin-server-2 dmdbiso]# ./DMInstall.bin -i 安装语言: [1]: 简体中文 [2]: English 请选择安装语言 [1]: 1 解压安装程序......... 硬件架构校验通过! core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7546 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) 7546 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 可打开文件数过少,建议至少设置为65536或更多。 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]: N 是否设置时区? (Y/y:是 N/n:否) [Y/y]: N 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]: 1 所需空间: 2170M 请选择安装目录 [/opt/dmdbms]: /usr/local/dmdbms 可用空间: 37G 是否确认安装路径(/usr/local/dmdbms)? (Y/y:是 N/n:否) [Y/y]: Y 安装前小结 安装位置: /usr/local/dmdbms 所需空间: 2170M 可用空间: 37G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否): Y 2024-12-27 10:16:39 [INFO] 安装达梦数据库... 2024-12-27 10:16:40 [INFO] 安装 基础 模块... 2024-12-27 10:16:46 [INFO] 安装 服务器 模块... 2024-12-27 10:16:48 [INFO] 安装 客户端 模块... 2024-12-27 10:16:51 [INFO] 安装 驱动 模块... 2024-12-27 10:16:53 [INFO] 安装 手册 模块... 2024-12-27 10:16:54 [INFO] 安装 服务 模块... 2024-12-27 10:16:54 [INFO] 移动日志文件。 2024-12-27 10:16:55 [INFO] 正在启动DmAPService服务... 2024-12-27 10:16:55 [INFO] 启动DmAPService服务成功。 2024-12-27 10:16:55 [INFO] 安装达梦数据库完成。 安装结束 [root@kylin-server-2 dmdbiso]# cd /usr/local/src/ [root@kylin-server-2 dmdbiso]# umount dmdbiso达梦数据库安装完成。上图中有一部分提示我们ulimit参数没有优化,本文最后有优化ulimit参数方法。达梦数据库目录如下:(yum install tree -y 安装tree命令)[root@kylin-server-2 ~]# tree /usr/local/dmdbms -L 1 /usr/local/dmdbms ├── bin #pdo_扩展依赖的动态链接库目录 ├── bin2 ├── desktop ├── doc ├── drivers #驱动目录,达梦数据库php Pdo驱动模块文件就在这个路径下的php_pdo目录 ├── include ├── jar ├── jdk ├── license_chs.txt ├── license_cht.txt ├── license_en.txt ├── log ├── samples ├── script ├── tool ├── uninstall └── uninstall.sh [root@kylin-server-2 ~]# ls /usr/local/dmdbms/drivers/php_pdo libphp52_dm.so libphp54_dm.so libphp56ts_dm.so libphp72_dm.so libphp74ts_dm.so libphp82_dm.so php52ts_pdo_dm.so php55_pdo_dm.so php70ts_pdo_dm.so php73_pdo_dm.so php80ts_pdo_dm.so php83_pdo_dm.so libphp52ts_dm.so libphp54ts_dm.so libphp70_dm.so libphp72ts_dm.so libphp80_dm.so libphp82ts_dm.so php53_pdo_dm.so php55ts_pdo_dm.so php71_pdo_dm.so php73ts_pdo_dm.so php81_pdo_dm.so php83ts_pdo_dm.so libphp53_dm.so libphp55_dm.so libphp70ts_dm.so libphp73_dm.so libphp80ts_dm.so libphp83_dm.so php53ts_pdo_dm.so php56_pdo_dm.so php71ts_pdo_dm.so php74_pdo_dm.so php81ts_pdo_dm.so libphp53_mysql.so libphp55ts_dm.so libphp71_dm.so libphp73ts_dm.so libphp81_dm.so libphp83ts_dm.so php54_pdo_dm.so php56ts_pdo_dm.so php72_pdo_dm.so php74ts_pdo_dm.so php82_pdo_dm.so libphp53ts_dm.so libphp56_dm.so libphp71ts_dm.so libphp74_dm.so libphp81ts_dm.so php52_pdo_dm.so php54ts_pdo_dm.so php70_pdo_dm.so php72ts_pdo_dm.so php80_pdo_dm.so php82ts_pdo_dm.so本次php PDO_DM模块只需要关注 /usr/local/dmdbms/bin 和/usr/local/dmdbms/drivers/php_pdo这两个目录下内容。把达梦bin目录下的动态库文件添加到系统动态库加载项[root@kylin-server-2 ~]# echo "/usr/local/dmdbms/bin" > /etc/ld.so.conf.d/php-dm.conf [root@kylin-server-2 ~]# ldconfig ldconfig: /usr/local/dmdbms/bin/libxerces-c-3.1.so 不是符号链接 ldconfig: /usr/local/dmdbms/bin/libgeos_c.so.1 不是符号链接 #(这两条警告信息可忽略) [root@kylin-server-2 ~]# 拷贝达梦 php 模块文件到PHP扩展目录下本次一并操作了 php的dm模块和PDO_DM模块[root@kylin-server-2 ~]# cp /usr/local/dmdbms/drivers/php_pdo/libphp82_dm.so /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/ [root@kylin-server-2 ~]# cp /usr/local/dmdbms/drivers/php_pdo/php82_pdo_dm.so /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/修改php.ini,引入达梦数据库模块[root@kylin-server-2 ~]# echo "extension=libphp82_dm" >> /etc/php82/php.ini [root@kylin-server-2 ~]# echo "extension=php82_pdo_dm" >> /etc/php82/php.ini [root@kylin-server-2 ~]# echo 'export PATH=$PATH:/usr/local/php82/bin' >> /etc/bashrc [root@kylin-server-2 ~]# source !$ source /etc/bashrc注意{message type="error" content="如果测试中报以下错误,一定要及时排查。否则造成的一切后果自负案例一、如果测试报这个错误,一定要修复,一定不要重启服务器,会导致静态IP丢失,本人本地虚拟机亲测"/}[root@kylin-server-2 ~]# php -m php: relocation error: /usr/lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference{message type="warning" content="出现这个错误的原因是 /etc/ld.so.conf.d/php-dm.conf 执行这一步时,没有使用php-dm.conf文件名,而是自定义了其他文件名,由于文件名不同可能导致加载动态链接库顺序不一致,libssl.so类似这样的同名文件不同内容库,相互影响了。解决办法是:修改php-dm.conf(这里是你自己起的文件名,改成其他的或者干脆就跟作者一样使用 php-dm.conf 做名字然后ldconfig再次测试 php -m | grep -i dm)"/}配置完成,检测[root@kylin-server-2 ld.so.conf.d]# php -m | grep -i dm dm PDO_DM #这里显示dm和PDO_DM模块已经被安装并且成功加载了。 ## 然后使用以下脚本检测Pdo模块功能 [root@kylin-server-1 ~]# cd /tmp/ [root@kylin-server-1 tmp]# cat >dm_db.php<<EOF <?php try { //数据库链接字符串 $dn="dm:host=192.168.12.10;port=5236;dbname=PHP"; $pdo = new PDO($dn,"PHP","b5KJqM4F57"); //用户名 ,密码<br> $query="SELECT * FROM PHP.\"tgs\""; //测试查询语句 $stmt = $pdo->query($query); if(!$stmt)//如果出现了错误,获得错误信息 { echo "<pre>"; echo $pdo->errorCode(); print_r($pdo->errorInfo()); echo "</pre>"; die(); } $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); echo "<pre>"; print_r($rows); echo "</pre>"; }catch(PDOException $e){ print "Error: " . $e->getMessage()."<br/>"; } EOF [root@kylin-server-1 tmp]# php dm_db.php <pre>Array ( [0] => Array ( [id] => 1 [name] => 来自PHP PDO_DM模块的检测 ) [1] => Array ( [id] => 2 [name] => bbb1 ) ) </pre>[root@kylin-server-1 tmp]# ## 测试表需要自己创建,我这里是名为PHP模式下的tgs表,有id和name两列。查到此内容则表示测试OK.优化ulimit参数方法#先查看当前设置: [root@kylin-server-2 ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7546 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) 7546 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@kylin-server-2 ~]# ulimit -SHn 65535 cat >> /etc/security/limits.conf<<EOF * soft nofile 1024000 * hard nofile 1024000 * soft nproc 1024000 * hard nproc 1024000 * soft core unlimited * soft stack 10240 EOF ## 再次查看ulimit设置 [root@kylin-server-2 ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7546 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 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) 7546 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 这里已经看到参数修改好了。可用的命令ldconfig ##重载系统动态链接库 ldconfig -v ##查看重载链接库详细过程,并显示链接库名 ldd libssl.so ##查看libssl.so链接库依赖哪些库
2024年12月22日
138 阅读
0 评论
0 点赞