【问题分类】驱动使用
【关键字】ODBC、驱动使用、PHP
【问题描述】应用使用php-fpm+nginx架构,通过php的ODBC拓展连接YashanDB时出现报错:
但是在应用所在的主机上使用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]部分添加环境文件
在/etc/sysconfig/php-fpm中添加以下内容:
添加完成后需要重新启动php-fpm服务:
方法二:
在/lib/systemd/system/php-fpm.service的[Service]部分添加环境变量
添加完成后需要重新启动php-fpm服务:
【影响范围】所有版本
【修复版本】-