Hello!

I just startet learning mod_perl and apache. I use the current version of 
mod_perl 1 and apache 1.3. Perl itself has version 6.5.1.

My aim ist to set some environment variables visible to all apache/perl 
children (as far as I unsterstand there is one perl instance for each apache 
child), but my testapplication does sometimes see my environment settings and 
sometimes not. It changes if I press the refresh button of the browser.

According to mod_perl Developerls Cookbook I createt a script called 
envteststartup.pl:
      1 #!/usr/bin/env perl
      2
      3 BEGIN{
      4     $ENV{ORACLE_HOME}="/opt/oracle/product/9.2.0";
      5     $ENV{ORACLE_SID}="i001";
      6     $ENV{ORACLE_TERM}="xterm";
      7     $ENV{NLS_LANG}="AMERICAN_AMERICA.WE8ISO8859P1";
      8     
$ENV{ORA_NLS33}="/opt/oracle/product/9.2.0/ocommon/nls/admin/data";
      9     $ENV{NLS_TIMESTAMP_FORMAT}="YYYY-MM-DD HH24:MI:SS.FF";
     10     $ENV{NLS_TIMESTAMP_TZ_FORMAT}="YYYY-MM-DD HH24:MI:SS.FF TZR";
     11     $ENV{NLS_DATE_FORMAT}="YYYY-MM-DD";
     12     $ENV{NLS_NUMERIC_CHARACTERS}=",.";
     13     $ENV{TNS_ADMIN}="/opt/oracle/product/9.2.0/network/admin";
     14
     15     $ENV{INFORMIXDIR}="/opt/informix";
     16     $ENV{INFORMIXSERVER}="onltuxtcp";
     17     $ENV{DBDATE}="Y4MD-";
     18     $ENV{DBCENTURY}="C";
     19
     20     $ENV{BETLOGDIR}="/usr/local/apache/logs";
     21     $ENV{BETYUCDB}="yucatan_test1";
     22     $ENV{BETYUCDBTYP}="informix";
     23     $ENV{BETLOGIN}="login";
     24
     25     $ENV{SESSIONDIR}="/usr/local/apache/sessions";
     26     $ENV{SESSIONLOCKDIR}="/usr/local/apache/sessions/lock";
     27 }
     28
     29     use lib qw(/usr/local/apache/modperlappl);
     30     use lib qw(/usr/local/apache);
     31
     32     use strict;
     33     use warnings;
     34     use Apache::DBI;
     35     use DBI;
     36     use Apache::Session;
     37     use Apache::Session::File;
     38     use Apache::Request;
     39     use Apache::URI;
     40     use Apache::Log;
     41
     42     use envtest::handler;
     43
     44 1;

My http.conf has the following mod_perl entries:
    338 PerlRequire conf/envteststartup.pl
    339
    340 Alias /envtest/ /usr/local/apache/modperlappl/envtest/
    341 <Location /envtest/>
    342     SetHandler perl-script
    343     PerlHandler envtest::handler
    344 </Location>

My testapplication is as simple as can be:
      1 package envtest::handler;
      2
      3 sub handler {
      4     my $r=Apache::Request->instance(shift());
      5
      6     $r->send_http_header('text/plain');
      7
      8     print "Environment:\n";
      9
     10     while ( my ( $key, $value ) = each %ENV ) {
     11         print "$key: $value\n";
     12     }
     13
     14 }
     15
     16 1;

I assume not all perl instances get my environment settings but where is the 
error causing me headache?

Regards,
Bernhard Donaubauer

Reply via email to