CGI: Umgebungsvariable setzen

Hallo!

Wenn ich im apache als cgi-bin ein bestimmtes Programm aufrufe erscheint in der error.log folgende Meldung:

fatal: libstdc++.so.6: open failed: No such file or directory

Ich habe herausgefunden, dass anscheinende die Umgebungsvariable LD_LIBRARY_PATH falsch gesetzt ist.

Bei normalen Benutzern habe ich die Variable mit „declare -x LD_LIBRARY_PATH=/usr/local/lib“ im entsprechenden Homedir (.profile) des Users richtig gesetzt, dann läuft das Programm auch.

Leider scheint dies bei http (unter dieser Kennung läuft apache) nicht zu funktionieren.

Kann mir jemand sagen, wie ich für die cgi-Umgebung Umgebungsvariablen setzen kann?
/etc/profile scheint auch keine Wirkung zu haben.

Danke!

Ähm.

Also ich hab da ldconfig, was die libs wohl automatisch hinzufügt, ich geb meine Pfade für die librarys nur in der /etc/ld.so.conf an

Was hast du denn für ne lustige distri?

bye,
Christoph

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

/etc/ld.so.conf an

Was hast du denn für ne lustige distri?

Solaris 9, da gibt´s leider nirgendwo eine ld.so.conf.

Hallo!

Hi,

Wenn ich im apache als cgi-bin ein bestimmtes Programm aufrufe
erscheint in der error.log folgende Meldung:

fatal: libstdc++.so.6: open failed: No such file or directory

Ich habe herausgefunden, dass anscheinende die
Umgebungsvariable LD_LIBRARY_PATH falsch gesetzt ist.

Bei normalen Benutzern habe ich die Variable mit „declare -x
LD_LIBRARY_PATH=/usr/local/lib“ im entsprechenden Homedir
(.profile) des Users richtig gesetzt, dann läuft das Programm
auch.

Na, dann mach das doch hier auch so. Ich weiss ja jetzt nicht, welche konkrete Sprache Dein CGI verwendet, aber ich mutmasse mal ganz keck, dass es Perl ist:

 system("declare -x LD\_LIBRARY\_PATH=/usr/local/lib; krass\_programm");

HTH,
Gruss vom Frank.

Danke für Eure Tipps, ich habe die Lösung gefunden:

Das CGI-Script war übrigens kein Script, sondern ein kompiliertes C-Programm.
Ich habe den Bibliothekspfad zur Compile-Zeit richtig gesetzt, danach lief es.

Hi Xanadu,

Solaris 9, da gibt´s leider nirgendwo eine ld.so.conf.

könnte mich täuschen, aber unter Sol9 sollte der Linker-Cache unter
/var/ld/ld.config oder /var/ld/sparcv9/ld.config
zu finden sein.

CU (M)ike

(Hint: http://kris.koehntopp.de/artikel/soladm/text0.html)