2010-03-31 109 views
5

我正在尝试测试Cyber​​source 3D方实现。我能够从命令行使测试文件正常运行,这要求在Linux上将支付库的路径导出到LD_LIBRARY_PATH。在Apache PassEnv/SetEnv中设置LD_LIBRARY_PATH仍然无法找到库

,试图测试这个我的服务器我已经创建了下面

<VirtualHost 127.0.0.1:12345> 
    AddHandler cgi-script .cgi 
    AddHandler fcgid-script .php .fcgi 
    FCGIWrapper /my/path/to/php_fcgi/bin/php-cgi .php 
    AddType text/html .shtml 
    AddOutputFilter INCLUDES .shtml 
    DocumentRoot /my/path/to/cybersource/simapi-php-5.0.1/ 
    ProxyPreserveHost on 

    <Directory /my/path/to/cybersource/simapi-php-5.0.1> 
    SetEnv LD_LIBRARY_PATH /my/path/to/cybersource/LinkedLibraries/lib/ 
    AllowOverride all 
    Options +Indexes 
    IndexOptions Charset=UTF-8 
    </Directory> 
</VirtualHost> 

我跟setenv命令,这似乎当我运行打印

一个页面是工作设置环境变量有Apache的配置
<?php phpinfo(); ?> 

然而,当通过浏览器仍然无法正常工作称为测试脚本,阿帕奇说:

tail /my/apache/error_log 
[Tue Mar 30 23:11:46 2010] [notice] mod_fcgid: call /my/path/to/cybersource/index.php with wrapper /my/path/to/cybersource/php_fcgi/bin/php-cgi 
PHP Warning: PHP Startup: Unable to load dynamic library '/my/path/to/cybersource/extensionsdir/php5_cybersource.so' - libspapache.so: cannot open shared object file: No such file or directory in Unknown on line 0 

所以它找不到链接的文件libspapache.so,即使它在LD_LIBRARY_PATH,据说是定义

我真的很感谢帮助。非常感谢。

回答

1

SetEnv是一个每个请求的东西,所以它不会影响FCGIWrapper运行的上下文。您想要使用FcgidInitialEnvFcgidCmdOptions在包装环境中设置变量。

+0

谢谢!就是这样,虽然我使用旧版本的FastCGI,所以它是DefaultInitEnv而不是FcgidInitialEnv – JiminyCricket 2010-03-31 05:09:50