用动物做网站名称,游戏设计师,重庆搜索引擎优化seo,创新型的赣州网站建设【问题分类】驱动使用
【关键字】ODBC、驱动使用、PHP
【问题描述】应用使用php-fpmnginx架构#xff0c;通过php的ODBC拓展连接YashanDB时出现报错#xff1a;
[unixODBC][Driver Manager]Cant open lib /home/yashandb_odbc/libyas_odbc.so: file not found但是在应用所…【问题分类】驱动使用
【关键字】ODBC、驱动使用、PHP
【问题描述】应用使用php-fpmnginx架构通过php的ODBC拓展连接YashanDB时出现报错
[unixODBC][Driver Manager]Cant 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]部分添加环境变量
EnvironmentLD_LIBRARY_PATH/usr/lib:/usr/lib64:实际C驱动文件夹的lib添加完成后需要重新启动php-fpm服务:
systemctl daemon-reload
systemctl restart php-fpm【影响范围】所有版本
【修复版本】-