Apache PassEnv / SetEnv içinde LD_LIBRARY_PATH ayarlama hala cant kütüphanesini bulmak

1 Cevap php

Ben CyberSource 3d parti uygulanması test etmek çalışıyorum. Linux üzerinde ben LD_LIBRARY_PATH için ödeme kütüphanelere yolunu ihraç gerektiren komut satırından, ince çalışan test dosyaları elde etmek mümkün oldu.

benim sunucu üzerinde test etmek denemek için aşağıda apache yapılandırma oluşturduk

<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>

Ben bir sayfa çalıştırdığınızda çalışıyor görünüyor SetEnv komutu ile orada env değişkeni belirledik Yazdırabilen

<?php phpinfo(); ?>

Ancak tarayıcı üzerinden denilen test script hala işe alışkanlık, apache diyor ki:

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

bu yüzden sözde tanımlandığı LD_LIBRARY_PATH olsa bile libspapache.so bağlantılı dosyayı bulamıyorum

i gerçekten yardım ederiz. çok teşekkürler.

1 Cevap

SetEnv bir istek başına bir şey, bu yüzden FCGIWrapper altında çalıştığı bağlamı etkilemez. Sen sargının ortamında değişkenleri ayarlamak için FcgidInitialEnv veya FcgidCmdOptions kullanmak istiyorum.