问题分类】驱动使用

关键字】ODBC、驱动使用、PHP

问题描述】应用使用php-fpm+nginx架构,通过php的ODBC拓展连接YashanDB时出现报错:

[unixODBC][Driver Manager]Can't open lib '/home/yashandb_odbc/libyas_odbc.so': file not found

但是在应用所在的主机上使用isql连接YashanDB数据库正常,ldd检查/home/yashandb_odbc/libyas_odbc.so和libyascli.so.0均正常。

问题原因分析】php-fpm和nginx均通过systemctl的方法启动,该启动方式不会读取配置到机器中的环境变量,导致php-fpm的workers进程无法正确获取到ODBC的驱动文件

解决/规避方法

方法一:

在/lib/systemd/system/php-fpm.service的[Service]部分添加环境文件

EnvironmentFile=/etc/sysconfig/php-fpm

在/etc/sysconfig/php-fpm中添加以下内容:

LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/home/yashandb_odbc:/home/yashandb_client/lib
export LD_LIBRARY_PATH
其中/home/yashandb_odbc和/home/yashandb_client/lib是odbc驱动和C驱动lib的文件夹

添加完成后需要重新启动php-fpm服务:

systemctl daemon-reload
systemctl restart php-fpm

方法二:

在/lib/systemd/system/php-fpm.service的[Service]部分添加环境变量

Environment=LD_LIBRARY_PATH=/usr/lib:/usr/lib64:<实际C驱动文件夹的lib>

添加完成后需要重新启动php-fpm服务:

systemctl daemon-reload
systemctl restart php-fpm

影响范围】所有版本

修复版本】-

【YashanDB数据库】PHP无法通过ODBC连接到数据库的更多相关文章

  1. [原]php远程odbc连接sqlsvr数据库,自定义端口,命名实例的连接方式

    远程odbc连接sqlsvr数据库,自定义端口,命名实例的连接方式,默认如果不修改的话sqlsvr的端口号是1433,默认实例名就是机器名,,如果既用了命名实例,又改了默认端口,改怎么连接数据库呢? ...

  2. 解决ODBC连接Oracle数据库报Unable to connect SQLState=08004问题

    今天用ODBC连接Oracle数据库时,报了这么一个错“Unable to connect SQLState=08004 Oracle ODBC Ora-12154”,上网查了好久都说PowerDes ...

  3. Excel VBA 连接各种数据库(二) VBA连接Oracle数据库

    本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracle10g官方免账号下载地址 系统环境: Windows 7 64bit Excel 2 ...

  4. [转]ODBC连接ORACLE数据库的设置

    本文转自:http://www.cppblog.com/edog/articles/1420.html 首先安装Oracle,以Oracle 817为例,作为ODBC开发者的客户端,才能使用Oracl ...

  5. Asp.Net通过ODBC连接Oracle数据库

    本来有个项目是通过安装Oracle client然后让asp.net引用System.Data.OracleClient来访问Oracle数据库的,但是不知道为什么老是报:ORA-12170:连接超时 ...

  6. Linux安装ODBC连接SQLServer数据库

    操作系统:Centos7.2 1.下载ODBC安装包 unixODBC-2.3.9.tar.gz freetds-1.3.9.tar.gz 下载这两个压缩包的地址:ftp://ftp.freetds. ...

  7. Excel VBA 连接各种数据库(一) VBA连接MySQL数据库

    本文参考[东围居士]的cnblog博文  Excel.VBA与MySQL交互  在自己机器上调试成功,把调试中遇到的问题一并写出了. 本文主要涉及: VBA中的MySQL环境配置 VBA连接MySQL ...

  8. 【redis数据库学习】用JAVA连接redis数据库各种报错

    最近项目中,需要用到redis数据库,然后使用Jedis让JAVA连接redis. 首先,安装redis数据库,参考的是:http://www.runoob.com/redis/redis-insta ...

  9. 测试odbc连接sqlsever数据库是否成功的代码

    1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 #include<sql.h ...

  10. cognos10.2.2使用ODBC连接oracle92数据库(BMT-IMP-0016)

    对于Cognos Server 64位Windows系统,注意!请下载32位程序.即:   因为Cognos只认32位ODBC程序.这里千万要注意.对于64位的Windows系统的ODBC有两个程序, ...

随机推荐

  1. SAM & 广义 SAM & SA 学习笔记

    SAM 定理 SAM 由 parent 树与一张 DAG 构成,他们共用点集. \(endpos(s)\) 表示 \(s\) 出现的所有位置上最后一个字符所处位置的集合. SAM 中 DAG 上每条路 ...

  2. VulnHub-DC-7渗透流程

    DC-7 kali:192.168.157.131 靶机:192.168.157.151 信息收集 nmap -sV -A -p- 192.168.157.151 虽然有robots.txt等敏感文件 ...

  3. Ez Forensics详解

    Ez Forensics详解 题目要求: 数据库版本 + 字符集格式 + 最长列名 示例:NSSCTF 步骤: 解压压缩包得到forensics.vmdk,.vmdk是虚拟机磁盘文件的元数据文件 可以 ...

  4. Nginx常用操作

    Nginx Nginx的最重要的几个使用场景 静态资源服务,通过本地文件提供服务 反向代理服务,延伸出包括缓存,负载均衡等 API服务,OpenResty 相关概念 简单请求和非简单请求 请求方法是H ...

  5. 使用Sequelize

    访问MySQL 当我们安装好MySQL后,Node.js程序如何访问MySQL数据库呢? 访问MySQL数据库只有一种方法,就是通过网络发送SQL命令,然后,MySQL服务器执行后返回结果. 我们可以 ...

  6. Mybatis ResultMap复杂对象一对多查询结果映射之collection

    Mybatis复杂对象一对多映射配置ResultMap的collection collection:一对多查询结果映射,比如user有多个订单 表结构 项目结构图 pom.xml <?xml v ...

  7. LabVIEW Actor Framwork (1)________ 边学边做server&client

    初始需求: 现在要做一个类似聊天的demo,一个server端,若干个client端:首先是server启动,通过server可以打开若干个client端,然后每个client可以独立给server发 ...

  8. java小技巧~修改对象的属性名

    今天联调的时候,有个功能是在初始化的时候将图片路径回显到vant组件的上传组件上,但是vant组件需要图片路径名叫url,而后端返给我的路径名叫filePath,而且是双层嵌套.一个个遍历老麻烦了,下 ...

  9. 数据结构:Deuque

    #include <iostream> #include <stdio.h> #include <string> using namespace std; stru ...

  10. java开发,入职第一天都干什么,带提前了解

    2024.7.24,帝都今晚大雨,在雨声磅礴的夜晚适合干什么,没错适合敲代码,写博客,今晚来聊下入职一个新公司,第一天都干什么. 无论是刚毕业的新手小白,还是工作十余年的职场老人,入职一家新公司,只要 ...