You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Steve Duran <st...@nmmcc.com> on 2005/11/18 22:33:22 UTC

[mp2] Env Variable / Oracle config problem

  Hello,

  I'm trying to get a basic web app running under mod_perl2, using an Oracle database connection.  After I define the environment variables listed below, the test script works fine from the command line, but fails with the following error when I try to run it via the web server.  If I do not define the environment variables, I get the same error on the command line as I do from the web server.

  I have tried different ways of defining the enviroment variables for the script, but nothing seems to work.

  This is the error that I get from the web server (Apache 2)

[Fri Nov 18 14:15:54 2005] [error] Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.9.0: 
cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230. 
at /web/cgi-bin/test/test.pl line 6
Compilation failed in require at /web/cgi-bin/test/test.pl line 6..
BEGIN failed--compilation aborted at /web/cgi-bin/test/test.pl line 6.


  This is and excerpt from httpd.conf:

SetEnv ORACLE_HOME /u01/app/oracle/product/9.2.0.4
SetEnv ORACLE_USERID foo/foo@bar
SetEnv ASSUME_KERNEL 2.4.19
SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/9.2.0.4/lib

LoadModule perl_module modules/mod_perl.so

PerlModule Apache2::compat
PerlModule Apache::DBI


ScriptAlias /test/ "/web/cgi-bin/test/"

<Directory "/web/cgi-bin/test">
  Options +ExecCGI
  SetHandler perl-script
  PerlResponseHandler ModPerl::Registry
  PerlOptions +ParseHeaders
</Directory>


Beginning of test.pl:

#!/usr/bin/perl -w

use strict;
use Apache::DBI;
use DBI;
use DBD::Oracle;
use CGI qw(:standard);
use Text::TagTemplate;
use Storable;

BEGIN
{
  $ENV{'ORACLE_HOME'} = '/u01/app/oracle/product/9.2.0.4';
  $ENV{'ORACLE_USERID'} = 'foo/foo@bar';
  $ENV{'ASSUME_KERNEL'} = '2.4.19';
  $ENV{'LD_LIBRARY_PATH'} = '/u01/app/oracle/product/9.2.0.4/lib';
}

  Any suggestions?

  Thanks,

  Steve

Re: [mp2] Env Variable / Oracle config problem

Posted by "Philippe M. Chiasson" <go...@ectoplasm.org>.
Steve Duran wrote:
>  
> 
>   Hello,
> 
>  
> 
>   I'm trying to get a basic web app running under mod_perl2, using an
> Oracle database connection.  After I define the environment variables
> listed below, the test script works fine from the command line, but
> fails with the following error when I try to run it via the web server. 
> If I do not define the environment variables, I get the same error on
> the command line as I do from the web server.
> 
>  
> 
>   I have tried different ways of defining the enviroment variables for
> the script, but nothing seems to work.
> 
>  
> 
>   This is the error that I get from the web server (Apache 2)
> 
>  
> 
> [Fri Nov 18 14:15:54 2005] [error] Can't load
> '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so'
> for module DBD::Oracle: libclntsh.so.9.0:
> cannot open shared object file: No such file or directory at
> /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230.
> at /web/cgi-bin/test/test.pl line 6
> Compilation failed in require at /web/cgi-bin/test/test.pl line 6.
> BEGIN failed--compilation aborted at /web/cgi-bin/test/test.pl line 6.
> 
>  
> 
>  
> 
>   This is and excerpt from httpd.conf:
> 
> 
> SetEnv ORACLE_HOME /u01/app/oracle/product/9.2.0.4
> SetEnv ORACLE_USERID foo/foo@bar <ma...@bar>
> SetEnv ASSUME_KERNEL 2.4.19
> SetEnv LD_LIBRARY_PATH /u01/app/oracle/product/9.2.0.4/lib

Try this:

PerlSetEnv ORACLE_HOME /u01/app/oracle/product/9.2.0.4
PerlSetEnv ORACLE_USERID foo/foo@bar <ma...@bar>
PerlSetEnv ASSUME_KERNEL 2.4.19
PerlSetEnv LD_LIBRARY_PATH /u01/app/oracle/product/9.2.0.4/lib

More details here:
  http://perl.apache.org/docs/1.0/guide/config.html#PerlSetEnv_and_PerlPassEnv

--------------------------------------------------------------------------------
Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5
http://gozer.ectoplasm.org/     F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5