Schrift
[thread]3749[/thread]

DBD-Oracle: Oracle.so / libclntsh.so



<< >> 9 Einträge, 1 Seite
mho
 2006-12-12 15:12
#34962 #34962
User since
2003-09-12
30 Artikel
BenutzerIn
[default_avatar]
Hallo

Mein Apache2.2 läuft unter SUSE10.1 als User wwwrun.
wwwrun hat weder ein Login noch ein .profile (somit auch nicht die nötigen ENV's).

Im Internet findet man viele Lösungsansätze für meine Fehlermeldung:

Code: (dl )
install_driver(Oracle) failed: Can't load '/.../Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /.../DynaLoader.pm line 229.


Leider funktioniert bei mir nichts.

- habe in apache/bin/envvars alles nötige hinzugefügt
- in apache/conf/httpd.conf PassEnv für alle nötigen ENV's konfiguriert
- die datei libclntsh.so.10.1 ist wo sie sein sollte, stimmt auch mit LD_LIBRARY_PATH überein
- ich verzweifle...
bloonix
 2006-12-13 11:01
#34963 #34963
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo,

so ganz werde ich nicht aus dieser Meldung schlau. Kommt die vom
Apache oder von einem Skript, in dem du DBI.pm und DBD::Oracle.pm
nutzt, denn die Fehlermeldung ...DynaLoader.pm line 229... schaut
eher nach einem Skript aus.

Gruss,
opi
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2006-12-13 11:31
#34964 #34964
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das ist eine Meldung von DBD::Oracle...

Die Apache-Sachen sollen nur dazu dienen, die - in dem Skript benötigten - Umgebungsvariablen zu setzen. Der Apache hat mit der Fehlermeldung nix zu tun...

@mho: Versuch doch mal im Skript einen BEGIN-Block zu machen, in dem Du LD_LIBRARY_PATH setzt:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl

use strict;
use warnings;

BEGIN{
$ENV{LD_LIBRARY_PATH} = '/benoetigter/Pfad/';
}

use DBI;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
mho
 2006-12-13 11:45
#34965 #34965
User since
2003-09-12
30 Artikel
BenutzerIn
[default_avatar]
...habs mit PassEnv in httpd.conf geschaft, das $ENV{LD_LIBRARY_PATH} im Script zur Verfügung steht.

Zuvor hab ichs auch schon im BEGIN Block gesetzt.

Habs auch mit use lib (@INC) versucht.

Keine Variante funktioniert.
Relais
 2006-12-13 12:01
#34966 #34966
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ORACLE_HOME mußt Du auch noch setzen. Wenn da dann auch noch eine korrekte Oracle-Installation liegt, muß es funktionieren...
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
bloonix
 2006-12-13 12:10
#34967 #34967
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Man koennte auch einen Instantclient nach /usr/lib installieren, wo die
Libraries dann gefunden werden. Aber das waere doppelt gemoppelt. :)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
mho
 2006-12-13 12:14
#34968 #34968
User since
2003-09-12
30 Artikel
BenutzerIn
[default_avatar]
Folgende ORA-ENV's stehen im Script korrekt zur Verfügung:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PassEnv LD_LIBRARY_PATH
PassEnv ORACLE_BASE
PassEnv ORA_NLS
PassEnv SH_LIB
PassEnv PERL5LIB
PassEnv ORACLE_SID
PassEnv TNS_ADMIN
PassEnv ORA_ENCRYPT_LOGIN
PassEnv SQLPATH
PassEnv GLOGINPATH
PassEnv ORA_NLS33
PassEnv ORACLE_HOME
PassEnv dbt
PassEnv PATH


sqlplus funktioniert (oracle client 10.2.0 ist korrekt installiert)\n\n

<!--EDIT|mho|1166005031-->
mho
 2006-12-13 12:38
#34969 #34969
User since
2003-09-12
30 Artikel
BenutzerIn
[default_avatar]
krasser workaround:

apache als user oracle mit...
Code: (dl )
su -c "apachectl start"

...starten.

dann klappts!
bloonix
 2006-12-13 12:44
#34970 #34970
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=mho,13.12.2006, 11:38]krasser workaround:[/quote]
Natürlich klappt das, weil dann die Umgebung von Oracle an den Apache
weitergegeben wird! Du solltest aber unbedingt sicherstellen, dass der
User Oracle alle notwendigen Pfade enthält.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< >> 9 Einträge, 1 Seite



View all threads created 2006-12-12 15:12.