CGI: Umgebungsvariable setzen

Von: , Frage gestellt am Mi, 6. Okt 2004

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!

5 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 2 hilfreich
    Re: CGI: Umgebungsvariable setzen

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

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: CGI: Umgebungsvariable setzen

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

      • Antwort von nach 13 Tagen 0 hilfreich
        Re^3: CGI: Umgebungsvariable setzen

        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)

  2. Antwort von nach einer Stunde 1 hilfreich
    Re: CGI: Umgebungsvariable setzen

    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.

  3. Antwort von nach 19 Stunden 0 hilfreich
    Re: CGI: Umgebungsvariable setzen

    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.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!