banduwgs has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I am using Perl scripts on Apache web server to access Oracle DB.

DB connection simply fails with the following error on the apache error_log:

DBI connect('','www',...) failed: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin) + at /usr/local/apache/cgi-bin/itrack_basic_search/test.pl line 19

Line19: test.pl:

my $dbh= DBI-> connect('dbi:Oracle:','www','www') or die "Database con +nection cannot be established";

I feel this is a miss configuration Apache web server, since the script runs on the command line without any problem.

I saw a similar posting @ Perl, DBI, Oracle, Apache, but I did not have a luck with this. I have already configured following Env variables on httpd.conf:

SetEnv ORACLE_HOME /usr/lib/oracle/xe/app/oracle/product/10.2.0/server +/ SetEnv ORACLE_SID XE SetEnv NLS_LANG `$ORACLE_HOME/bin/nls_lang.sh` SetEnv PATH $ORACLE_HOME/bin:$PATH SetEnv LD_LIBRARY_PATH /usr/lib/oracle/xe/app/oracle/product/10.2.0/se +rver/lib/

Any clues please?

Sumith

Replies are listed 'Best First'.
Re: Perl, DBI, Oracle, Apache: Followup
by Corion (Patriarch) on Jun 12, 2006 at 07:01 UTC

    You are using shell syntax in your environment variable setup - I'm not sure if Apache will do what you want. The following lines are likely problematic:

    SetEnv NLS_LANG `$ORACLE_HOME/bin/nls_lang.sh` SetEnv PATH $ORACLE_HOME/bin:$PATH

    You should really output the %ENV you get, and possibly hardcode the values instead of creating them dynamically.

Re: Perl, DBI, Oracle, Apache: Followup
by Joost (Canon) on Jun 12, 2006 at 07:14 UTC
      Thanks Monks, I got fixed them.