You might also wish to try using Env::C. I have had some weird cases
where the perl %ENV looked ok, but the 'actual' environment was
different.

allan

On Thu, Apr 8, 2010 at 2:51 PM, Sven Miller <ngdvakigyot...@gmail.com> wrote:
> NLS_LANG = en_GB.UTF-8
>
> As I understand it, "UTF-8" is not a valid charset.  It needs to be
> either AL32UTF8, or UTF8 (no dash).  There is a difference between the
> two, and you probably want AL32UTF8, but I recommend researching the
> difference.
>
> I know you said you tried changing this value, so this may not be the
> solution.  Just wanted to throw it out there.
>
> On Thu, Apr 8, 2010 at 2:21 PM, Alexander Foken <alexan...@foken.de> wrote:
>>
>>
>> -------- Original Message --------
>> Subject:        Re: failed: ERROR OCIEnvNlsCreate. Check (everything)
>> Date:   Thu, 8 Apr 2010 13:09:33 -0400
>> From:   Perl Diety <misterp...@gmail.com>
>> To:     Alexander Foken <alexan...@foken.de>
>> References: <q2sb914e70a1004060656o63d399f3le68b76b458079...@mail.gmail.com>
>> <4bbc460f.5050...@easysoft.com> <4bbcf0b3.7010...@foken.de>
>>
>>
>>
>> I wrote the script to dump %ENV (in a MUCH more Perlish way than the apache
>> version!) but yes, you're correct; I filtered out a lot of unrelated stuff
>> to make the list more friendly.
>>
>> I don't think a linux apache server cares about *PATH* does it? Not sure.
>> The message seemed to imply PATH was only used for WINDOWS servers?
>>
>> I'm *pretty sure* our ENV VARS for the LIBs and server correctly- because
>> before we set them we were getting a DIFFERENT error (cant load Oracle.so).
>> Now we're past that error onto the next one. So I think the ORACLE_HOME and
>> LD paths are OK now.
>>
>> Its a preplexing problem with LOTS and LOTS of difffernt proposed fixes in
>> the forums. I suspect that's because there are so many possible problems.
>>
>> As a programmer, I'm not dazzled by the error message. I would never present
>> my users with a message like "it might be A, or possibly B, or something to
>> do with C, or possibly SOMETHING ELSE"..
>>
>> Instead I would CHECK A, report an A error if found,. Check B, report a B
>> error if found. And so on. Its unreasonable to expect a user to react to a
>> message that basically says IT COULD BE ANYTHING!
>>
>> In this case, some users say check the locale, language settings, others say
>> check LIB PATH. Others say its a DBI or DBD / Oracle version mismatch. SOme
>> say its an Oracle 10 security issue and I need to run an Oracle script to
>> un-harden it?
>>
>> I've encountered very few times in my 20 years as a programmer where ONE
>> error could be caused by so many possibilities. After like 4 man-weeks,
>> we're still fumbling with it.
>>
>> Thanks!
>> MP
>>
>>
>>
>>
>> On Wed, Apr 7, 2010 at 4:53 PM, Alexander Foken <alexan...@foken.de
>> <mailto:alexan...@foken.de>> wrote:
>>
>>   On 07.04.2010 10:45, Martin Evans wrote:
>>
>>       Perl Diety wrote:
>>
>>           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://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
>>           <http://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
>>
>>
>>   This looks roughly like a CGI enviromnent, and the Oracle Variables
>>   seem to be set. But lots of variables seem to be missing, like PATH
>>   and some variabes starting with HTTP_, SERVER_, SCRIPT_, and
>>   REQUEST_. And the LD_xxx variables shouldn't be there.
>>
>>   If this is the *complete* environment provided to the CGI, something
>>   is *very* wrong with the Apache.
>>
>>   If not, post a complete dump of %ENV in CGI context, e.g. with the
>>   printenv script that came with Apache:
>>
>>   #!/usr/local/bin/perl
>>   ##
>>   ##  printenv -- demo CGI program which just prints its environment
>>   ##
>>
>>   print "Content-type: text/plain; charset=iso-8859-1\n\n";
>>   foreach $var (sort(keys(%ENV))) {
>>     $val = $ENV{$var};
>>     $val =~ s|\n|\\n|g;
>>     $val =~ s|"|\\"|g;
>>     print "${var}=\"${val}\"\n";
>>
>>   }
>>
>>
>>
>>       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
>>
>>   Two ways:
>>
>>   1. PassEnv VariableName [...] -- see
>>   <http://httpd.apache.org/docs/2.2/mod/mod_env.html#passenv>
>>   2. SetEnv VariableName Value -- see
>>   <http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv>
>>
>>   I prefer PassEnv over SetEnv when the variables already exist in the
>>   environment of the process invoking the Apache server. That way, I
>>   don't have to change the Apache configuration when an environment
>>   variable changes. I use SetEnv only to set additional variables that
>>   must not appear in the environment of the process invoking the
>>   Apache server.
>>
>>   See also
>>
>> <http://alexander-foken.de/Censored%20copy%20of%20Oracle%20Troubleshooter%20HOWTO.html>
>>
>>   Alexander
>>
>>   --    Alexander Foken
>>   mailto:alexan...@foken.de <mailto:alexan...@foken.de>
>>    http://www.foken.de/alexander/
>>
>>
>>
>> --
>> Alexander Foken
>> mailto:alexan...@foken.de  http://www.foken.de/alexander/
>>
>>
>>
>



-- 
"The truth is an offense, but not a sin"

Reply via email to