Just posted minutes ago on this.

This partially fixed me also.  Problem was the line in the /perl container
(PerlHandler Apache::Registry instead of  PerlHandler ModPerl::Registry).
Except now I get this:
[Mon Apr 22 18:32:37 2002] [error] 1580: ModPerl::Registry: `Can't call
method "args" on an undefined value at c:/perl/5.6.1/lib/CGI.pm line 433.

It is referring to the IF statement:
   if ($MOD_PERL) {
       $query_string = Apache->request->args;
   } else {
       $query_string = $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
       $query_string ||= $ENV{'REDIRECT_QUERY_STRING'} if defined
$ENV{'REDIRECT_QUERY_STRING'};
   }

In CGI>pm up at line 148 there is this:
# Turn on special checking for Doug MacEachern's modperl
if (exists $ENV{'GATEWAY_INTERFACE'}
    &&
    ($MOD_PERL = $ENV{'GATEWAY_INTERFACE'} =~ /^CGI-Perl\//))
{
    $| = 1;
    require Apache;
}

Do I need to define 'GATEWAY_INTERFACE', or is it provided automatically by
mod_perl? This is on Win2000.

Thanks
Chuck

----- Original Message -----
From: "Randy Kobes" <[EMAIL PROTECTED]>
To: "xk" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Monday, April 22, 2002 3:16 PM
Subject: Re: mod_perl installation on Win32


> On Mon, 22 Apr 2002, xk wrote:
>
> > Apache version info (shown on error web pages):
> > Apache/2.0.35 (Win32) mod_perl/1.99_02-dev Perl/v5.6.1
> >
> > Is this mod_perl 1.0 or 2.0? When I installed (from the location you
> > pointed - theoryx5) it said mod_perl 2.0, but on Apache is shows 1.99
>
> This is normal - mod_perl, version 2.0, hasn't yet been released;
> the version on CPAN, which the above is reporting, is 1.99_01.
>
> > I've managed to get some error texts:
> >
> > ==============
> > [error] Can't locate loadable object for module Apache::Constants in
@INC
> > at .../Perl/site/lib/mod_perl.pm line 14
> >
> > 14:    if ($ENV{MOD_PERL}) {
> > 15:        (defined &{$class.'::bootstrap'} ?
> > 16:         \&{$class.'::bootstrap'} :
> > 17:         \&DynaLoader::bootstrap)->
> > 18:             ($class, $version);
> > 19:    }
> >
> > Compilation failed in require at .../Perl/site/lib/Apache.pm line 6.
> > BEGIN failed--compilation aborted at .../Perl/site/lib/Apache.pm line 6.
>
> I've seen this as well at times - do you have a mod_perl-1.xx
> distribution in the same Perl tree? If so, try
> temporarily renaming
>     /Perl/site/lib/Apache.pm -> /Perl/site/lib/Apache-1.pm
>     /Perl/site/lib/Apache/   -> /Perl/site/lib/Apache-1/
> as sometimes I think it gets confused between mod_perl-2
> and mod_perl-1 stuff.
>
> For using Registry things, there was a bug that Doug
> fixed a little while ago - you should reinstall mod_perl-2.ppd
> from http://theoryx5.uwinnipeg.ca/ppmpackages/. The version
> number hasn't changed with this fix, so if you're using the
> ppm utility to install things, you should first uninstall
> mod_perl-2 and then reinstall it.
>
> Here's an example set-up for Registry scripts. In httpd.conf:
> ============================================================
> PerlRequire "C:/Apache2/conf/extra.conf"
> Alias /perl/ "C:/Apache2/perl/"
> <Location /perl>
>    SetHandler perl-script
>    PerlHandler ModPerl::Registry
>    Options +ExecCGI
> </Location>
> ============================================================
> where C:/Apache2/conf/extra.conf is
> ===========================================================
> use Apache2;
> use ModPerl::Registry ();
> 1;
> ===========================================================
> An example script to go into C:/Apache2/perl/ would be
> ==========================================================
> #!c:/Perl/bin/Perl.exe
> ##
> ##  printenv -- demo CGI program which just prints its environment
> ##
> print "<HTML><BODY><UL>";
> foreach $var (sort(keys(%ENV))) {
>   $val = $ENV{$var};
>   $val =~ s|\n|\\n|g;
>   $val =~ s|"|\\"|g;
>   print "<LI>${var}=\"${val}\"</LI>\n";
> }
> # sleep(10);
> print "</UL></BODY></HTML>";
> ==============================================================
> which would then be accessed as http://localhost/perl/printenv.
>
> A nice example of how Apache-2/mod_perl-2 addresses the
> single-thread limitation of Apache-1/mod_perl-1, as discussed
> at http://perl.apache.org/win32_multithread.html, is to
> uncomment the "sleep(10)" line in the above script, then,
> from a DOS prompt, run quick multiple instances of
>     GET http://localhost/perl/printenv
> and check the access times in the logs when the script was
> handled, and compare to mod_perl-1.
>
> best regards,
> randy

Reply via email to