Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

mod_perl questions
I've used Perl off and on for years but I am now trying to work with
mod_perl and I have some questions/issues.


How can I tell if I have mod_perl configured correctly?  I installed
it with `emerge mod_perl` on my Gentoo box.  I am running Apache2.  I
see the line:

Apache/2.0.52 (Gentoo/Linux) mod_perl/1.99_11 Perl/v5.8.5 PHP/5.0.3
Server at destiney.mine.nu Port 80

when I type a nonexistant url.  Is that it as far a "complete" mod_perl inst
all?



My apache config contains this:

<IfModule mod_perl.c>
#Provide two aliases to the same cgi-bin directory,
#to see the effects of the 2 different mod_perl modes
#for Apache::Registry Mode
Alias /perl/ /var/www/localhost/perl/
#for Apache::Perlrun Mode
Alias /cgi-perl/ /var/www/localhost/perl/
</IfModule>

<IfModule mod_perl.c>
PerlModule Apache2::ModPerl::Registry
#set Apache::Registry Mode for /perl Alias
# To set subdirectories to use perl set the following
# and comment the orignial:
# <Location ~ "^/perl/.*\.pl$">

<Location  "^/perl/*.pl>
SetHandler perl-script
<IfDefine MODPERL2>
PerlResponseHandler Apache2::ModPerl::Registry
</IfDefine>
<IfDefine !MODPERL2>
PerlResponseHandler ModPerl::Registry
</IfDefine>
Options -Indexes ExecCGI
PerlSendHeader On
</Location>

#set Apache::PerlRun Mode for /cgi-perl Alias
<Location /cgi-perl/*.pl>
SetHandler perl-script
PerlResponseHandler ModPerl::PerlRun
Options -Indexes ExecCGI
PerlSendHeader On
</Location>
</IfModule>

So does that mean when I put a .pl script in /perl/ it will be
executed by mod_perl and not #!/usr/bin/perl?  Seems to not be the
case since when I remove the #!/usr/bin/perl from the top of a script
it breaks it and I get error like:

[Sat Dec 18 14:43:31 2004] [error] [client 10.0.0.3] (8)Exec format
error: exec of '/var/www/localhost/perl/hello.pl' failed
[Sat Dec 18 14:43:31 2004] [error] [client 10.0.0.3] Premature end of
script headers: hello.pl

in my logs.  I read somewhere in the docs when using mod_perl that the
#!/usr/bin/perl is no longer required, so I'm thinking maybe I'm not
done with the apache configuration?


What is the advantage to running mod_perl versus just running perl
scripts out of my cgi-bin ?  I suspect there is a performance gain
from to the interpreter already existing in memory or something, but
is there some new syntax I get to use now?  Can I now include Perl
code directly into my html?


Thanks for any help you send..


--
Greg Donald
Zend Certified Engineer
http://gdconsultants.com/
http://destiney.com/

Report this thread to moderator Post Follow-up to this message
Old Post
Greg Donald
12-19-04 01:55 AM


Re: mod_perl questions
Greg,

You will probably need to read some documentation:

http://perl.apache.org/docs/index.html
http://perl.apache.org/docs/1.0/guide/porting.html

Note that last one is mod_perl-based, not mod_perl2, but it is a reasonable
introduction.  Also, the mod_perl book is available online:

http://modperlbook.org/

and is a fantastic resource.

There are, of course, many websites devoted to getting started with
mod_perl.

----- Original Message -----
From: "Greg Donald" <destiney@gmail.com>
To: <beginners-cgi@perl.org>
Sent: Saturday, December 18, 2004 4:35 PM
Subject: mod_perl questions


> I've used Perl off and on for years but I am now trying to work with
> mod_perl and I have some questions/issues.
>
>
> How can I tell if I have mod_perl configured correctly?  I installed
> it with `emerge mod_perl` on my Gentoo box.  I am running Apache2.  I
> see the line:
>
> Apache/2.0.52 (Gentoo/Linux) mod_perl/1.99_11 Perl/v5.8.5 PHP/5.0.3
> Server at destiney.mine.nu Port 80
>
> when I type a nonexistant url.  Is that it as far a "complete" mod_perl
> install?

In the documentation are some simple tests you can cut-and-paste to see if
mod_perl is up and running.

> So does that mean when I put a .pl script in /perl/ it will be
> executed by mod_perl and not #!/usr/bin/perl?  Seems to not be the
> case since when I remove the #!/usr/bin/perl from the top of a script
> it breaks it and I get error like:

Perl scripts that run under CGI will need to be "handled" by
ModPerl::Registry.  There are some specific details about writing scripts
under ModPerl::Registry, mainly relating to the fact that the script is kept
"alive" so that Global variables do not automatically go out of scope
between requests.  See this link for details.

http://perl.apache.org/docs/1.0/guide/porting.html

> [Sat Dec 18 14:43:31 2004] [error] [client 10.0.0.3] (8)Exec format
> error: exec of '/var/www/localhost/perl/hello.pl' failed
> [Sat Dec 18 14:43:31 2004] [error] [client 10.0.0.3] Premature end of
> script headers: hello.pl
>
> in my logs.  I read somewhere in the docs when using mod_perl that the
> #!/usr/bin/perl is no longer required, so I'm thinking maybe I'm not
> done with the apache configuration?
>
>
> What is the advantage to running mod_perl versus just running perl
> scripts out of my cgi-bin ?  I suspect there is a performance gain
> from to the interpreter already existing in memory or something, but
> is there some new syntax I get to use now?  Can I now include Perl
> code directly into my html?

I am relatively new to mod_perl myself and I continue to be amazed by what I
have available via mod_perl.  And the performance gain really cannot be
overestimated for heavy-traffic sites, it seems.

As for putting perl into your HTML, you may find templating is what you are
interested in.  There a number of options (see
http://perl.apache.org/docs/tutoria...comparison.html), most
of which do not require mod_perl.  I wouldn't put that high on my list of
reasons to change from cgi to mod_perl.  In fact, there are many good
reasons NOT to put perl (or really much of any logic) into your HTML.

Sean



Report this thread to moderator Post Follow-up to this message
Old Post
Sean Davis
12-19-04 01:55 AM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

PERL CGI Beginners archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 07:35 AM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.