Hi adam,
I got that mod_perl works on my server.
But how to setup Komodo 3.1 to debug mod_perl?
It seems like Komodo can only debug mod_cgi.
My httpd.conf setting:
<Perl>
use lib qw("C:/Program Files/ActiveState Komodo 3.1/dbgp/perllib");
$ENV{PERLDB_OPTS} = "RemotePort=127.0.0.1:1417 LogFile=stderr";
use Apache::DB ();
Apache::DB->init;
</Perl>
Alias /perl/ "C:/Apache2.2/htdocs/perl/"
<Location /perl/>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
PerlFixupHandler Apache::DB
Order allow,deny
Allow from all
</Location>
Below is Apache error logs:
Thu Jul 17 12:50:21 2008] [error] Unable to get Terminal Size. The Win32
GetConsoleScreenBufferInfo call didn't work. The COLUMNS and LINES environment
variables didn't work. The resize program didn't work. at
C:/Perl/lib/Term/ReadKey.pm line 362.\nCompilation failed in require at
C:/Perl/lib/Term/ReadLine/Perl.pm line 64.\n at
C:/Perl/lib/Term/ReadLine/Perl.pm line 64\n\teval {...} called at
C:/Perl/lib/Term/ReadLine/Perl.pm line
64\n\tTerm::ReadLine::Perl::new('Term::ReadLine', 'perldb',
'IO::Socket::INET=GLOB(0xa4f9cbc)', 'IO::Socket::INET=GLOB(0xa4f9cbc)') called
at C:/Perl/site/lib/Apache/perl5db.pl line 2226\n\tDB::setterm called at
C:/Perl/site/lib/Apache/perl5db.pl line 773\n\tDB::DB called at
C:/Apache2.2/htdocs/perl/foo2.cgi line
2\n\tModPerl::ROOT::ModPerl::Registry::C_3a_Apache2_2e2_htdocs_perl_foo2_2ecgi::BEGIN()
called at C:/Perl/lib/Term/ReadLine/readline.pm line 2\n\teval {...} called at
C:/Perl/lib/Term/ReadLine/readline.pm line
2\n\teval 'package
ModPerl::ROOT::ModPerl::Registry::C_3a_Apache2_2e2_htdocs_perl_foo2_2ecgi;sub
handler {local $0 = \\'C:/Apache2.2/htdocs/perl/foo2.cgi\\';\n#line 1
C:/Apache2.2/htdocs/perl/foo2.cgi\n#!c:/perl/bin/perl.exe\r\n use strict;\r\n
print "Content-type: text/html\\\\n\\\\n";\r\n print
"<HTML><BODY><H3>Environment variables</H3><UL>";\r\n foreach (sort keys %ENV)
{\r\n my $val = $ENV{$_};\r\n $val =~ s|\\\\n|\\\\\\\\n|g;\r\n $val =~
s|"|\\\\\\\\"|g;\r\n print "<LI>$_ = \\\\"${val}\\\\"</LI>\\\\n";\r\n
}\r\n #sleep(10);\r\n print "</UL></BODY></HTML>";\n}\n;' called at
C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
677\n\tModPerl::RegistryCooker::compile('ModPerl::Registry=HASH(0x280c1ac)',
'SCALAR(0x1c615f0)') called at C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
406\n\tModPerl::RegistryCooker::convert_script_to_compiled_handler('ModPerl::Registry=HASH(0x280c1ac)')
called at
C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
163\n\tModPerl::RegistryCooker::default_handler('ModPerl::Registry=HASH(0x280c1ac)')
called at C:/Perl/site/lib/ModPerl/Registry.pm line
31\n\tModPerl::Registry::handler('ModPerl::Registry',
'Apache2::RequestRec=SCALAR(0x280c284)') called at
C:/Perl/lib/Term/ReadLine/readline.pm line 2\n\teval {...} called at
C:/Perl/lib/Term/ReadLine/readline.pm line 2\n at
C:/Perl/lib/Term/ReadLine/Perl.pm line
64\n\tTerm::ReadLine::Perl::new('Term::ReadLine', 'perldb',
'IO::Socket::INET=GLOB(0xa4f9cbc)', 'IO::Socket::INET=GLOB(0xa4f9cbc)') called
at C:/Perl/site/lib/Apache/perl5db.pl line 2226\n\tDB::setterm called at
C:/Perl/site/lib/Apache/perl5db.pl line 773\n\tDB::DB called at
C:/Apache2.2/htdocs/perl/foo2.cgi line
2\n\tModPerl::ROOT::ModPerl::Registry::C_3a_Apache2_2e2_htdocs_perl_foo2_2ecgi::BEGIN()
called at C:/Apache2.2/htdocs/perl/foo2.cgi line 2\n\teval {...} called at
C:/Apache2.2/htdocs/perl/foo2.cgi line
2\n\teval 'package
ModPerl::ROOT::ModPerl::Registry::C_3a_Apache2_2e2_htdocs_perl_foo2_2ecgi;sub
handler {local $0 = \\'C:/Apache2.2/htdocs/perl/foo2.cgi\\';\n#line 1
C:/Apache2.2/htdocs/perl/foo2.cgi\n#!c:/perl/bin/perl.exe\r\n use strict;\r\n
print "Content-type: text/html\\\\n\\\\n";\r\n print
"<HTML><BODY><H3>Environment variables</H3><UL>";\r\n foreach (sort keys %ENV)
{\r\n my $val = $ENV{$_};\r\n $val =~ s|\\\\n|\\\\\\\\n|g;\r\n $val =~
s|"|\\\\\\\\"|g;\r\n print "<LI>$_ = \\\\"${val}\\\\"</LI>\\\\n";\r\n
}\r\n #sleep(10);\r\n print "</UL></BODY></HTML>";\n}\n;' called at
C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
677\n\tModPerl::RegistryCooker::compile('ModPerl::Registry=HASH(0x280c1ac)',
'SCALAR(0x1c615f0)') called at C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
406\n\tModPerl::RegistryCooker::convert_script_to_compiled_handler('ModPerl::Registry=HASH(0x280c1ac)')
called at
C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
163\n\tModPerl::RegistryCooker::default_handler('ModPerl::Registry=HASH(0x280c1ac)')
called at C:/Perl/site/lib/ModPerl/Registry.pm line
31\n\tModPerl::Registry::handler('ModPerl::Registry',
'Apache2::RequestRec=SCALAR(0x280c284)') called at
C:/Apache2.2/htdocs/perl/foo2.cgi line 2\n\teval {...} called at
C:/Apache2.2/htdocs/perl/foo2.cgi line 2\nBEGIN failed--compilation aborted at
C:/Apache2.2/htdocs/perl/foo2.cgi line 2.\n at
C:/Apache2.2/htdocs/perl/foo2.cgi line 2\n\teval 'package
ModPerl::ROOT::ModPerl::Registry::C_3a_Apache2_2e2_htdocs_perl_foo2_2ecgi;sub
handler {local $0 = \\'C:/Apache2.2/htdocs/perl/foo2.cgi\\';\n#line 1
C:/Apache2.2/htdocs/perl/foo2.cgi\n#!c:/perl/bin/perl.exe\r\n use strict;\r\n
print "Content-type: text/html\\\\n\\\\n";\r\n print
"<HTML><BODY><H3>Environment variables</H3><UL>";\r\n foreach (sort keys %ENV)
{\r\n my $val = $ENV{$_};\r\n $val =~
s|\\\\n|\\\\\\\\n|g;\r\n $val =~ s|"|\\\\\\\\"|g;\r\n print "<LI>$_ =
\\\\"${val}\\\\"</LI>\\\\n";\r\n }\r\n #sleep(10);\r\n print
"</UL></BODY></HTML>";\n}\n;' called at
C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
677\n\tModPerl::RegistryCooker::compile('ModPerl::Registry=HASH(0x280c1ac)',
'SCALAR(0x1c615f0)') called at C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
406\n\tModPerl::RegistryCooker::convert_script_to_compiled_handler('ModPerl::Registry=HASH(0x280c1ac)')
called at C:/Perl/site/lib/ModPerl/RegistryCooker.pm line
163\n\tModPerl::RegistryCooker::default_handler('ModPerl::Registry=HASH(0x280c1ac)')
called at C:/Perl/site/lib/ModPerl/Registry.pm line
31\n\tModPerl::Registry::handler('ModPerl::Registry',
'Apache2::RequestRec=SCALAR(0x280c284)') called at
C:/Apache2.2/htdocs/perl/foo2.cgi line 2\n\teval {...}
I did a lot online search as well, but still cann't find a solution.
http://osdir.com/ml/ide.komodo.general/2005-07/msg00008.html
Regards
Chris Z
--- On Thu, 17/7/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
From: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
Subject: Re: persistent database connection - Apache::DBI with mod_perl
To: [email protected]
Received: Thursday, 17 July, 2008, 12:33 AM
Quoting Chris Zhuang <[EMAIL PROTECTED]>:
> Hi,
> However, when I run an CGI script on the IE 6, it cannot find
> $ENV{MOD_PERL} and start new DBI connection.
> --------foo.cgi--------------------
> #!c:/perl/bin/perl.exe -d
> use DBI;
> use CGI qw(:standard);
>
> my $dbh = DBI->connect("dbi:Oracle:host=xxx;sid=xxx",
> "xxx", "xxx",
> {PrintError => 1, RaiseError => 0,
> AutoCommit => 1,}
> );
> --------END--------------------
>
It looks like your CGI's are are running under CGI, not
ModPerl::PerlRun, or ModPerl::Registry.
see:
http://perl.apache.org/docs/2.0/user/intro/start_fast.html#Registry_Scripts
Start at the new Yahoo!7 for a better online experience. www.yahoo7.com.au