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