Perl Diety wrote:
> We're trying to run a Perl program to connect to an Oracle 10 instance, on a
> RH box. From the xterm it runs fine- connects, R/W, everything is ducky. no
> issues whatsoever.
> 
> Then we tried it from a browser (apache server) and it's been a nightmare
> for days. After hours of research and trials, we finally managed to get past
> the "Cannot load Oracle.so"errors by modifying the ld conf file in /etc.,
> rebuilding the DBI, etc.
> 
> Now we've graduated to failed: "ERROR OCIEnvNlsCreate. Check (everything)"
> which basically says (*something* is wrong).
> 
> We went on a second research expiditon, and checked permissions, versions,
> modified ENV vars for NLS, yet nothing seems to help; we just keep getting
> this same message. The fiull message suggests a problem with ORACLE_HOME,
> ORA_NLS10, NLS_LANG,  and "etc" which we interpret to mean (anything at
> all).
> 
> We populated NLS_LANG to match *locale*. We also tried several other options
> like america.american, etc.
> 
> The error occurs at the Connect() step. I threw it into an eval{} block and
> checked perlvars for messages, but they were the same as the fataltobrowser
> message below.
> 
> Finally, we use the same DBI to connect just fine from a browser to mysql.
> So we know the DBI is at least functioning for some DBDs.
> 
> Any advice on howe to isolate this to a file or conf value, etc would be
> most welcome!
> 
> Here is the info we can extract to try to get an idea of what it doesnt
> like:
> 
> available_drivers:
> DBM
> ExampleP
> Oracle
> Proxy
> Sponge
> mysql
> 
> ENV VARS
> 
> DOCUMENT_ROOT = /var2/www/html
> GATEWAY_INTERFACE = CGI/1.1
> HTTP_ACCEPT = */*
> HTTP_ACCEPT_ENCODING = gzip, deflate
> HTTP_ACCEPT_LANGUAGE = en-us
> HTTP_HOST = ournode.com
> HTTP_UA_CPU = x86
> HTTP_USER_AGENT = Mozilla/4.0
> LD_LIBRARY_PATH = /export/apps/oracle/product/10201/lib
> LD_RUN_PATH = /export/apps/oracle/product/10201/lib
> NLS_LANG = en_GB.UTF-8
> ORACLE_BASE = /export/apps/oracle
> ORACLE_HOME = /export/apps/oracle/product/10201
> ORA_NLS10 = /export/apps/oracle/product/10201/nls/data/
> REQUEST_METHOD = GET
> REQUEST_URI = /cgi-bin/oratest.cgi
> SERVER_PORT = 80
> SERVER_PROTOCOL = HTTP/1.1
> SERVER_SIGNATURE =
> 
> Apache/2.0.52 (Red Hat) Server at ournode.com Port 80
> 
> SERVER_SOFTWARE = Apache/2.0.52 (Red Hat)
> DBI connect(...) failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux)
> env var or PATH (Windows) and or NLS settings, permissions, etc. at
> /cgi-bin/oratest.cgi line 32
> 

Did you really set AND export ORACLE_HOME or LD_LIBRARY_PATH such that
Apache children see them? I can't remember what the syntax in the
httpd.conf file is now (SetEnv perhaps) as I no longer use Apache but
you used to have to explicitly tell Apache which env vars to allow.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

Reply via email to