来自nagios脚本的PHP sybase_connect

来自nagios脚本的PHP sybase_connect,php,sybase,nagios,Php,Sybase,Nagios,是否有人在使用PHP中的sybase_connect作为nagios插件连接sybase数据库时遇到问题? 我的脚本在命令行上的同一个nagios用户下完全运行,但如果我通过nagios运行它,它将永远无法连接到数据库,sybase_connect始终返回错误的连接器,sybase_get_last_消息为空。 我已经检查了环境设置,即使我正在做,putenv唯一能看到的是SYBASE变量可能没有设置 putenv ("SYBPLATFORM=linux"); putenv ("LC_ALL=d

是否有人在使用PHP中的sybase_connect作为nagios插件连接sybase数据库时遇到问题? 我的脚本在命令行上的同一个nagios用户下完全运行,但如果我通过nagios运行它,它将永远无法连接到数据库,sybase_connect始终返回错误的连接器,sybase_get_last_消息为空。 我已经检查了环境设置,即使我正在做,putenv唯一能看到的是SYBASE变量可能没有设置

putenv ("SYBPLATFORM=linux");
putenv ("LC_ALL=default");
putenv ("DSQUERY=SYBASE");
putenv ("SYBASE=/usr/local/freetds");
putenv ("LD_LIBRARY_PATH=/usr/local/freetds/lib");
putenv ('PATH=/usr/local/freetds/bin');  // With this on or off makes no difference

$connector = sybase_connect ( "HOST-IN-FREETDS", "USER", "PASSWORD" );
if ($connector === false) {
         // Always falls into here if run via nagios, works if run as the same user from the command line
}
我通过运行以下命令比较了设置:

$return = `set`;
trigger_error ($return, E_USER_NOTICE);
检查了php错误日志,我还将phpinfo推送到了一个文件中,并在手动和通过nagios运行它时进行了区分

环境-UbuntuLTS14.04,NagiosCore4.0


有什么想法吗?提前感谢

1。putenv可能会覆盖当前值。2.您能获取并发布您在尝试连接时遇到的错误吗?我想让putenv覆盖环境变量,但问题是它们不是。但是,我通过strace运行了它,我可以看到PHP正在脚本启动时寻找freetds.conf,所以我想知道您是否可以在运行时重新定义freetds.conf的位置。错误是它找不到conf,如果我象征性地将freetds.conf链接到它工作的默认位置,我真的不想这样做。我想你必须重新构建freetds来更改该目录。有一个选项-sysconfdir=DIR,用于设置它。