Re: Error appears in web log but script runs ok on the command line

'lesleyb' <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <[email protected]>
Hi Bruce

On Mon, Oct 21, 2013 at 08:03:07PM +0000, Bruce Johnson wrote:
> 
> On Oct 20, 2013, at 1:03 PM, Bruce Johnson <[email protected]> wrote:
> 
> > Oh it turned out to be even simpler than that, and for once it wasn't MY fat fingers that fat fingered it this time :-)
> 
> Cue the sad trombone, because I was wrong, again.
> 
<snip>
> 
> We've set a directory to be handled by mod_perl as follows:
> 
> Alias /card_access /home/allwebfiles/perl/catcard
> <Directory /home/allwebfiles/perl/catcard>
>     SetHandler perl-script
>     PerlResponseHandler ModPerl::Registry
>     PerlOptions +ParseHeaders
>     Options +ExecCGI
>     PerlSetEnv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
>     PerlSetEnv ORACLE_HOME /usr/lib/oracle/11.2/client64
> </Directory>
> 
> With those directives in place, I get the error every time. (I've added ORACLE_SID and TNS_ADMIN to the PerlSetEnv declarations, but it makes no difference.
> 
> LD_LIBRARY_PATH is set, this is the contents of %ENV and %INC according to the server, with that mod_perl directive in place:
> 
<snip>
> LD_LIBRARY_PATH --> /usr/lib/oracle/11.2/client64/lib
<snip>
> ORACLE_HOME --> /usr/lib/oracle/11.2/client64
> PATH --> /sbin:/usr/sbin:/bin:/usr/bin
<snip>
> INC 
> INC-> /usr/local/lib64/perl5
> INC-> /usr/local/share/perl5
> INC-> /usr/lib64/perl5/vendor_perl
> INC-> /usr/share/perl5/vendor_perl
> INC-> /usr/lib64/perl5
> INC-> /usr/share/perl5
> INC-> .
> INC-> /etc/httpd
> 
> But attempting to create a database handle results in:
> 
> [Mon Oct 21 10:10:37 2013] [error] install_driver(Oracle) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libocci.so.11.1: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 200.\n at (eval 11) line 3\nCompilation failed in require at (eval 11) line 3.\nPerhaps a required shared library or dll isn't installed where expected\n at /home/allwebfiles/perl/catcard/oratest.pl line 9\n
> 
This error says 
install_driver(Oracle) failed: Can't load '/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle:
ibocci.so.11.1: cannot open shared object file:
No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 200.
at (eval 11) line 3
Compilation failed in require at (eval 11) line 3
Perhaps a required shared library or dll isn't installed where expected
at /home/allwebfiles/perl/catcard/oratest.pl line 9

which means that ibocci.so.11.1 cannot open the shared object (so) file
Oracle.so from the directory /usr/local/lib64/perl5/auto/DBD/Oracle,
where it is expecting it to be.

This means the mod-perl can already find ibocci.so.11.1.
ibocci.so.11.1 is being called from DynaLoader,.pm, which is being called at
line 9 of /home/allwebfiles/perl/catcard/oratest.pl.

So I believe you are still misreading the error message.
Have you checked that Oracle.so existrs in the
/usr/local/lib64/perl5/auto/DBD/Oracle directory *and* that mod-perl/apache can
access this directory, yet?

> 
<snip>
> Has anyone run into this before?
What, people not interpreting error messages correctly? ;-)  Yes. Frequently.  ;-)
I'm hoping you've cleared the error by now, btw.

Kind regards

Lesley
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.