Hello,

I am quite new to Apache and Mod_Perl. I have the following configuration :

    - Windows XP pro
    - Apache 2.2.4
    - ActivePerl 5.8.8
    - Mod_Perl 2.0.3

I have to port a script that runs fine under mod_cgi, to mod_perl. This script
have to run an external program, but have to set an environment variable before
launching the program. It's ok with mod_cgi, but it doesn't work with Mod_Perl.
The environment variable is not set.

I have written a small C program to test the case (LitEnv), it only display a
given environmenet variable. I also write the following script

#! d:/gcl3/programs/Perl/bin/perl
use strict;
use warnings;

my $temp = " MA VARIABLE ";
my $i = 0;
my $commande = "D:/gcl/lib/cgi-bin/LitEnv";

print "Content-type:  text/html\n\n";
print "<HTML><HEAD><TITLE>Variables du serveur</TITLE></HEAD>";
print "<BODY><CENTER>";
print "<H1> Serveur 82 : Xampp 1.6.0a - Apache 2.2.4 - ActivePerl 5.8.8 -
Mod_Perl</H1>\n";
print "<TABLE WIDTH=300><TR><TD><CENTER><FONT FACE=Arial COLOR=#000000>Table de
1000 elements dynamiques\n";
print "</FONT></CENTER></TD></TR></TABLE><BR><BR>\n";

print "#################### " . $temp . " #########################\n";
print "<FONT FACE=Arial SIZE=2>";
print "<TABLE WIDTH=750>\n";
for ($i = 0; $i < 10; ++$i)     # commence ?i = 0
                                # Continue tant que $i < 10
                                # Incr?nte $i avant de r?ter.
{
        $ENV{VARIABLE} = $i;

              $temp = qx($commande);

        print "<TR>\n";
        print "    <td bgcolor=\"#D1DAE0\">Message numero </TD>\n";
        print "    <td bgcolor=\"#D1DAE0\">ENV $temp - $i </TD>\n";
        print "</TR>\n";
}#///
print "</TABLE>\n";
print "</FONT>\n";
print "<BR><BR><BR></CENTER></BODY></HTML>";


I try to setup the Perl section of the httpd.conf to 'pass' the 'VARIABLE'
environment variable but without success !

LoadFile "/gcl3/programs/perl/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so

# PerlRequire "/gcl3/programs/Apache2.2/conf/extra/startup.pl"

PerlSetupEnv on
PerlPassEnv VARIABLE

ScriptAlias /perl/ "d:/gcl/lib/cgi-bin/"
<Directory "d:/gcl/lib/cgi-bin">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
Allow from All
</Directory>

Can someone tell why it does work in mod_cgi and not with mod_perl, and what can
I do to fix it ?

Thank you for your help.

Bruno.

Reply via email to