Re: News regarding mod_perl returning empty pages

2009-08-26 Thread Fred Moyer
On Tue, Aug 25, 2009 at 7:20 PM, Igor Chudovichu...@gmail.com wrote:
 My new perlbal.conf is included:

 REATE POOL dynamic
   pool dynamic add 127.0.0.1:10080

 CREATE SERVICE balancer
   SET listen   = 0.0.0.0:80
   SET role = reverse_proxy
   SET pool = dynamic
   SET persist_client  = on
   SET persist_backend = off
   SET verify_backend  = on

With verify_backend = on, perlbal makes an OPTIONS request to the
mod_perl server.  That request usually returns an empty 200, which in
other scenarios could be viewed as a blank page.

How perlbal would send that back to the client is something I don't
know.  But I would consider disabling that option as it doubles the
number of total requests to the backend mod_perl server.  That's just
my opinion though, changing that failure could cause other failure
modes to surface.

If you want to use that option, you should write a mod_perl handler
that answers to a verify_backend url (see the perlbal docs) and
returns a few characters of text back to perlbal.  If you see those
characters in your blank screens - that's the problem.  Although I'm
skeptical that is what is happening.


Re: mod_perl2 interactive startup

2009-08-26 Thread Torsten Foertsch
On Tue 25 Aug 2009, ama...@solutionsforprogress.com wrote:
 Unfortunately using restart_count does not address my issue.

 In the http.conf I have the following:
 ...
 PerlConfigRequire   conf/startup.pl
 ...

 My test startup.pl has this:

      our $INPUT;
      print STDERR Input:;
      $INPUT = STDIN;
      print STDERR you entered $INPUT;

 My issue is during the first start everything works as I need it to,
   Input: is printed out to the terminal and the script waits for
 input.

 The problem is for the automatic restart everything is tied to the
 log files. Everything printed to STDERR goes into the logs and a user
 cannot enter any input.

 For the restart how can I print messages and prompt for input?

Don't know if it actually works, but how about POSIX::dup2()ing 
STDERR/STDIN (or better opening /dev/tty and use this one for reading 
and writing) to well known file descriptors (say 1000, 1001) when 
restart_count==0. Then when restart_count0 you should be able to use 
them.

Torsten

-- 
Need professional mod_perl support?
Just hire me: torsten.foert...@gmx.net


Re: mod_perl on win32

2009-08-26 Thread Foo JH

I'd suggest to get your mp2 up with the following stack:
Apache22 Windows binary
ActivePerl binary
precompiled mod_perl2 + libapreq2 from the repo

Michiel Beijen wrote:

Hi all,

I'd like to know if it's possible to build mod_perl on Win32; I'd like
to use mod_perl with StrawberryPerl. It seems to be that the only way
that could be done is to compile Apache also with MinGW, and that's not
possible because of limited support for Windows Shared Memory in MinGW.

Also if you'd try to compile mod_perl it will try to run ./configure
on the Apache sources but that will fail on Win32 because 1. there is no
Configure in the win32 Apache sources and 2. Windows will try to execute
. which is not exactly an executable file...

Does anyone have pointers or tips?

Thanks in advance,
  




RFC: Apache2::CloseKeepAlive

2009-08-26 Thread craig

I'm working toward contributing a module with this working title
to CPAN, and would like your comments and advice.

The short story is that it's a mod_perl2 mechanism for optimizing
the KeepAlive option in the Apache2 server. The long story is at
http://www.animalhead.com/CloseKeepAlive.html

I'm tentatively convinced it's worth contributing, but you're welcome
to tell me why it's not. For sure, your advice on how to improve it
will be very welcome.

Specifically:
•   What CPAN module(s) is (are) most like this one, to use as
model(s) for how to package, test, and install it?
•   The plan is to use Module::Build and Apache::Test.
What else or something different?
•   Is something as specialized as this worth including in the
GP Perl libraries? Or is it better to just ask where the
mod_perl2 library is?
•   Is inclusion in the GP Perl libraries a prerequisite or
assumption of Module::Build or of CPAN?

In addition to where to put the module itself, it needs a place to
put a companion DB-building app and a place for the resulting DB.
These are not standard features of a module installation.
Probably I just ask the user where they should go?
If so, how do I use the answers?

Thanks for being there,
cmac



Re: News regarding mod_perl returning empty pages

2009-08-26 Thread Igor Chudov
Fred, thanks. I am afraid that verify_backend is more of an expensive
distraction, than something actually useful.

At this point in time I will try setting both persist_backend and
verify_backend to off.

I am also considering changing MaxRequestsPerChild and setting it to
something like 1,000.

None of this really solves the problem, but it might alleviate it very
considerably.

Thank you very much. Your help was invaluable and assisted me in keeping a
level head in dealing with this problem. .


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Perrin Harkins
On Wed, Aug 26, 2009 at 6:43 AM, cr...@animalhead.com wrote:
 I'm tentatively convinced it's worth contributing, but you're welcome
 to tell me why it's not.

I think that setting a very short Keep-Alive timeout would be almost
as good.  More importantly, you shouldn't serve any static files from
mod_perl.  You should serve those from a proxy instead.

However, I don't see any problem with releasing your code.  It's an
interesting idea and shows a novel use of IPC::MMA.

 •       The plan is to use Module::Build and Apache::Test.
        What else or something different?

Those are fine.

 •       Is something as specialized as this worth including in the
        GP Perl libraries? Or is it better to just ask where the
        mod_perl2 library is?

What's GP Perl?

 In addition to where to put the module itself, it needs a place to
 put a companion DB-building app and a place for the resulting DB.
 These are not standard features of a module installation.
 Probably I just ask the user where they should go?
 If so, how do I use the answers?

You can ask on the module authors list, but I think you'll find some
examples of modules with executable scripts if you poke around CPAN a
little.  LWP comes with some.

- Perrin


Re: portability of mod_perl for other web servers/apps

2009-08-26 Thread Perrin Harkins
On Tue, Aug 25, 2009 at 3:00 PM, dbadhanidbadh...@yahoo.com wrote:
 This may sound far fetched, but has anyone tried porting mod_perl for web
 servers other than Apache.

No, and it wouldn't really work.  A generic approach to running
persistent code already exists in the form of FastCGI.  The rest of
mod_perl is a perl interface to the Apache API, which makes it
unsuitable for other web servers.

 Basically, I am looking for integrating some of mod_perl functionality in
 some high performance middleware, basically to provide a way to customized,
 scriptable request processing in the request processing engine.

You could look at FastCGI, or embedding perl directly.

- Perrin


Re: News regarding mod_perl returning empty pages

2009-08-26 Thread Perrin Harkins
Igor,

Why don't you try logging the request size from your mod_perl server?
If it turns out that it knows when a request is zero bytes, you can
just kill the process in a cleanup handler.

Also, if you identify the PID of the broken process in this way, you
can look back through the logs to see what it did on the request
before it was broken.

- Perrin


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Adam Prime

cr...@animalhead.com wrote:

I'm working toward contributing a module with this working title
to CPAN, and would like your comments and advice.


A non-code comment, but there seems to be some consternation about the 
same terms as perl itself license.  See the link below:


http://perlbuzz.com/2009/07/help-end-licensing-under-same-terms-as-perl-itself.html

Adam


Re: mod_perl2 interactive startup

2009-08-26 Thread Perrin Harkins
On Tue, Aug 18, 2009 at 4:54 PM, ama...@solutionsforprogress.com wrote:
 During the mod_perl2 startup this feature works fine at first but mod_perl2
 always does a restart and during the second restart STDERR is being
 redirected to the log files and STDIN is ignored.

I suggest stashing the data somewhere and picking it up during
restart, like an environment variable or shared memory or a file.

- Perrin


Re: News regarding mod_perl returning empty pages

2009-08-26 Thread Igor Chudov
On Wed, Aug 26, 2009 at 8:58 AM, Perrin Harkins phark...@gmail.com wrote:

 Igor,

 Why don't you try logging the request size from your mod_perl server?
 If it turns out that it knows when a request is zero bytes, you can
 just kill the process in a cleanup handler.


Do you refer to the response size, as opposed to request size?

If so... I like your idea. How would I do that?



 Also, if you identify the PID of the broken process in this way, you
 can look back through the logs to see what it did on the request
 before it was broken.


Yes, it is a very good idea indeed.


Re: News regarding mod_perl returning empty pages

2009-08-26 Thread Perrin Harkins
On Wed, Aug 26, 2009 at 11:12 AM, Igor Chudovichu...@gmail.com wrote:
 Do you refer to the response size, as opposed to request size?

Yes.

 If so... I like your idea. How would I do that?

Just read the logging section of the apache docs.  It's a common part
of the access log.

- Perrin


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread craig

On Aug 26, 2009, at 7:03 AM, Perrin Harkins wrote:


What's GP Perl?


The general purpose Perl library is headed at /usr/local/lib/perl5
on my system.  What I was asking is whether there's any reason
to put Apache2::CloseKeepAlive in it, being as it's so specialized,
or just copy it to a mod_perl2-specific library (/usr/local/apache2/plib
on my system).  Maybe the latter if the user says such a thing exists,
else the former?

cmac



Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Perrin Harkins
On Wed, Aug 26, 2009 at 11:41 AM, cr...@animalhead.com wrote:
 The general purpose Perl library is headed at /usr/local/lib/perl5
 on my system.  What I was asking is whether there's any reason
 to put Apache2::CloseKeepAlive in it, being as it's so specialized,
 or just copy it to a mod_perl2-specific library (/usr/local/apache2/plib
 on my system).  Maybe the latter if the user says such a thing exists,
 else the former?

You don't get to choose that.  You just do a standard Module::Build
distribution, and if people want to install your module somewhere
outside of the site_lib, they specify that at install time.

- Perrin


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread mackenna

On Aug 26, 2009, at 7:39 AM, Adam Prime wrote:

A non-code comment, but there seems to be some consternation about  
the same terms as perl itself license.  See the link below:


http://perlbuzz.com/2009/07/help-end-licensing-under-same-terms-as- 
perl-itself.html


Inside many programmers, nascent lawyers lurk?

The linked-to CPAN Licensing Guidelines
http://www.perlfoundation.org/cpan_licensing_guidelines
was easier to read and didn't cut off the right sides of code segments.

I modified the end of
http://www.animalhead.com/CloseKeepAlive.html
accordingly.

Thanks,
cmac



Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread craig

On Aug 26, 2009, at 9:05 AM, Perrin Harkins wrote:


On Wed, Aug 26, 2009 at 11:41 AM, cr...@animalhead.com wrote:

The general purpose Perl library is headed at /usr/local/lib/perl5
on my system.  What I was asking is whether there's any reason
to put Apache2::CloseKeepAlive in it, being as it's so specialized,
or just copy it to a mod_perl2-specific library (/usr/local/ 
apache2/plib
on my system).  Maybe the latter if the user says such a thing  
exists,

else the former?


You don't get to choose that.  You just do a standard Module::Build
distribution, and if people want to install your module somewhere
outside of the site_lib, they specify that at install time.

- Perrin


How does one specify that?  It sounds like esoteric knowledge that
only a few users will know, and I'd like to empower people not to
clog up their GP Perl library with a module that can be used in
exactly one place.




Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Perrin Harkins
On Wed, Aug 26, 2009 at 12:21 PM, cr...@animalhead.com wrote:
 How does one specify that?  It sounds like esoteric knowledge that
 only a few users will know, and I'd like to empower people not to
 clog up their GP Perl library with a module that can be used in
 exactly one place.

It's in the docs for Module::Build.  Seriously, you have no control
over where users install your module.  Attempting to control it is
against the principles of CPAN distributions.

- Perrin


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread craig

Including a note about how to do something in an installation dialog,
for people who wouldn't otherwise know, is not controlling anything.
If that's against CPAN principles, the principles need some work!

cmac

On Aug 26, 2009, at 9:30 AM, Perrin Harkins wrote:


On Wed, Aug 26, 2009 at 12:21 PM, cr...@animalhead.com wrote:

How does one specify that?  It sounds like esoteric knowledge that
only a few users will know, and I'd like to empower people not to
clog up their GP Perl library with a module that can be used in
exactly one place.


It's in the docs for Module::Build.  Seriously, you have no control
over where users install your module.  Attempting to control it is
against the principles of CPAN distributions.

- Perrin




Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Perrin Harkins
Seriously, this is not something you need to be concerned about.
There are dozens of places for people to get information about how to
install CPAN modules.  Most people use the CPAN shell and set it up to
put things where they want them.

- Perrin

On Wed, Aug 26, 2009 at 1:31 PM, cr...@animalhead.com wrote:
 Including a note about how to do something in an installation dialog,
 for people who wouldn't otherwise know, is not controlling anything.
 If that's against CPAN principles, the principles need some work!

 cmac

 On Aug 26, 2009, at 9:30 AM, Perrin Harkins wrote:

 On Wed, Aug 26, 2009 at 12:21 PM, cr...@animalhead.com wrote:

 How does one specify that?  It sounds like esoteric knowledge that
 only a few users will know, and I'd like to empower people not to
 clog up their GP Perl library with a module that can be used in
 exactly one place.

 It's in the docs for Module::Build.  Seriously, you have no control
 over where users install your module.  Attempting to control it is
 against the principles of CPAN distributions.

 - Perrin




Re: mod_perl on win32

2009-08-26 Thread Michiel Beijen

Foo JH wrote:

I'd suggest to get your mp2 up with the following stack:
Apache22 Windows binary
ActivePerl binary
precompiled mod_perl2 + libapreq2 from the repo

That would be the easy way, right ;-)

The thing is, my project uses a software bundle which includes Apache 
and Strawberry for the Windows installer. Due to licensing requirements 
you could not bundle ActiveState in an open source product; therefore 
the Strawberry requirement. It is just too bad that ApachePerl is not 
alive anymore. Any tips for compiling mod_perl with Strawberry are still 
welcome!


Regards,
Michiel


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Michael Peters

cr...@animalhead.com wrote:

Including a note about how to do something in an installation dialog,
for people who wouldn't otherwise know, is not controlling anything.


Please don't put a dialog in your installation process! CPAN is supposed to be 
automatic after it's been configured. There are some rare occasions where it 
makes sense to ask some questions, but where you want the module installed is 
not one of them. CPAN takes care of that.


--
Michael Peters
Plus Three, LP



Re: News regarding mod_perl returning empty pages

2009-08-26 Thread Fred Moyer
On Wed, Aug 26, 2009 at 8:16 AM, Perrin Harkinsphark...@gmail.com wrote:
 On Wed, Aug 26, 2009 at 11:12 AM, Igor Chudovichu...@gmail.com wrote:
 Do you refer to the response size, as opposed to request size?

 Yes.

 If so... I like your idea. How would I do that?

 Just read the logging section of the apache docs.  It's a common part
 of the access log.

This is a good reference:

http://perl.apache.org/docs/2.0/user/handlers/http.html#PerlLogHandler


Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread craig

The installation process needs to know at least:
1. where the accompanying DB-building script should go
2. where the DB that the app builds should go

How can such necessary things be determined, other than by asking
the user?

I was just going to add a note before or after these two queries,
that if they have a mod_perl2 library and want the module to go
there, they should do this.

As I just wrote to Perrin off-list, since only a tiny fraction of
CPAN downloads are mod_perl2 modules, no one can configure CPAN
for a mod_perl2 library.

Perhaps my attitude toward installation dialogs has been warped
by recent experience with my previous CPAN module IPC::MMA.  The
install for version 0.54 contained no prompts.  Its results came
out 75% unknown, because few test environments included a
necessary C library 'mm'.  One of the chief testers suggested I
should add Devel::CheckLib to Makefile.PL.

So now if Makefile.PL doesn't find 'mm' in /usr/local/lib, it
prompts the user to enter the path to 'mm', which is then passed
to Devel::CheckLib.  The query is accompanied by a note showing
the URL from which 'mm' can be downloaded.

On the other hand, my latest version 0.58 has only been tested by
one tester, a week after uploading it.  Maybe that's because of
the new query in Makefile.PL!

Best Regards,
cmac


On Aug 26, 2009, at 10:44 AM, Michael Peters wrote:


cr...@animalhead.com wrote:

Including a note about how to do something in an installation dialog,
for people who wouldn't otherwise know, is not controlling anything.


Please don't put a dialog in your installation process! CPAN is  
supposed to be automatic after it's been configured. There are some  
rare occasions where it makes sense to ask some questions, but  
where you want the module installed is not one of them. CPAN takes  
care of that.


--
Michael Peters
Plus Three, LP




Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread Michael Peters

cr...@animalhead.com wrote:

The installation process needs to know at least:
1. where the accompanying DB-building script should go


Module::Build knows where to put bin/ or script/ files and it does so according 
to how Perl and CPAN are configured. I assume EU::MM does too.



2. where the DB that the app builds should go


That's probably something your application should allow to be specified, either 
a command line option to the script or an option to the module, or both.



How can such necessary things be determined, other than by asking
the user?


If it's a run time option (and can be changed or multiple programs can use this 
and thus want different values) don't ask for it at install time.



I was just going to add a note before or after these two queries,
that if they have a mod_perl2 library and want the module to go
there, they should do this.


Putting extra docs in your module is ok, but I personally wouldn't repeat the 
docs that are already out there.



As I just wrote to Perrin off-list, since only a tiny fraction of
CPAN downloads are mod_perl2 modules, no one can configure CPAN
for a mod_perl2 library.


All perl libraries should go in the same place IMO. Whether it's Apache 
specific, or GTK or something else. I don't want to have to mess with @INC just 
because someone put something someplace non-standard.



So now if Makefile.PL doesn't find 'mm' in /usr/local/lib, it
prompts the user to enter the path to 'mm', which is then passed
to Devel::CheckLib.  The query is accompanied by a note showing
the URL from which 'mm' can be downloaded.


Personally, I'd just bomb out if you can't find the lib (and Devel::CheckLib is 
good for that). Give the user a message that you can't find the library and then 
exit. I doubt that someone who has a library that's not in the system libs will 
know where it is, and if they do they can just as easily set LD_LIBRARY_PATH 
themselves.



On the other hand, my latest version 0.58 has only been tested by
one tester, a week after uploading it.  Maybe that's because of
the new query in Makefile.PL!


That's why prompts are evil. Automated tests won't work. So just bomb out and at 
least you'll get lots of UNKNOWN test results which is better than nothing :)


--
Michael Peters
Plus Three, LP



Re: portability of mod_perl for other web servers/apps

2009-08-26 Thread dbadhani

Thanks Perrin. I will take a look at FastCGI. 

Its just that mod_perl provides all the http infrastructure so neatly, its
very tempting to consider emulating Apache and reuse mod_perl. But I see
your point. 

regards,
Deven



Perrin Harkins-3 wrote:
 
 On Tue, Aug 25, 2009 at 3:00 PM, dbadhanidbadh...@yahoo.com wrote:
 This may sound far fetched, but has anyone tried porting mod_perl for web
 servers other than Apache.
 
 No, and it wouldn't really work.  A generic approach to running
 persistent code already exists in the form of FastCGI.  The rest of
 mod_perl is a perl interface to the Apache API, which makes it
 unsuitable for other web servers.
 
 Basically, I am looking for integrating some of mod_perl functionality in
 some high performance middleware, basically to provide a way to
 customized,
 scriptable request processing in the request processing engine.
 
 You could look at FastCGI, or embedding perl directly.
 
 - Perrin
 
 

-- 
View this message in context: 
http://www.nabble.com/portability-of-mod_perl-for-other-web-servers-apps-tp25140259p25155493.html
Sent from the mod_perl - General mailing list archive at Nabble.com.



PerlRun Subroutine redefine warnings

2009-08-26 Thread Kiran Kumar
Hi,
  I am running mod_perl/2.0.4 on Linux , I keep getting the subroutine
redefined warnings. Perlrun reloads the cgi on each request so why do
I keep getting these warnings ? Is there any other way to avoid this
other than no warnings qw/redefine/ in my scripts. Am I missing
something here ?.

  Here is a minimal script I tested with

#!/usr/bin/perl
use strict;
use warnings;
print Content-type:text/html \n\n;

test();
test();


sub test {
 print  in test \n;
}

  and here is my httpd.conf

 PerlModule ModPerl::PerlRun
  Location /cgi-bin
  SetHandler perl-script
  PerlHandler ModPerl::PerlRun
  PerlSetVar ReloadAll Off

  PerlResponseHandler +ModPerl::PerlRun
  PerlOptions +ParseHeaders
  PerlSendHeader On
  Options +ExecCGI
  /Location
  PerlRequire /opt/nms/www/cgi-bin/startup.pl
  # I modify @INC in startup.pl and do not load any modules

Error in the error_log
Subroutine test redefined at /opt/nms/www/cgi-bin/test1.pl line 22.
Subroutine test redefined at /opt/nms/www/cgi-bin/test1.pl line 10.

Thanks,
Kiran


Re: PerlRun Subroutine redefine warnings

2009-08-26 Thread Mike OK
This error occurs when you have two subroutines with the same name.  



Mike O'Krongli
President and CTO
Acorg Inc
519 432-1185
- Original Message - 
From: Kiran Kumar mkira...@gmail.com

To: modperl@perl.apache.org
Sent: Wednesday, August 26, 2009 8:07 PM
Subject: PerlRun Subroutine redefine warnings



Hi,
 I am running mod_perl/2.0.4 on Linux , I keep getting the subroutine
redefined warnings. Perlrun reloads the cgi on each request so why do
I keep getting these warnings ? Is there any other way to avoid this
other than no warnings qw/redefine/ in my scripts. Am I missing
something here ?.

 Here is a minimal script I tested with

#!/usr/bin/perl
use strict;
use warnings;
print Content-type:text/html \n\n;

test();
test();


sub test {
print  in test \n;
}

 and here is my httpd.conf

PerlModule ModPerl::PerlRun
 Location /cgi-bin
 SetHandler perl-script
 PerlHandler ModPerl::PerlRun
 PerlSetVar ReloadAll Off

 PerlResponseHandler +ModPerl::PerlRun
 PerlOptions +ParseHeaders
 PerlSendHeader On
 Options +ExecCGI
 /Location
 PerlRequire /opt/nms/www/cgi-bin/startup.pl
 # I modify @INC in startup.pl and do not load any modules

Error in the error_log
Subroutine test redefined at /opt/nms/www/cgi-bin/test1.pl line 22.
Subroutine test redefined at /opt/nms/www/cgi-bin/test1.pl line 10.

Thanks,
Kiran





Re: RFC: Apache2::CloseKeepAlive

2009-08-26 Thread craig

On Aug 26, 2009, at 11:44 AM, Michael Peters wrote:


cr...@animalhead.com wrote:

The installation process needs to know at least:
1. where the accompanying DB-building script should go


Module::Build knows where to put bin/ or script/ files and it does  
so according to how Perl and CPAN are configured. I assume EU::MM  
does too.


So if I put the script in a subdirectory bin of Apache2- 
CloseKeepAlive-n.nn/,

the install step should automatically put it somewhere in the path.
This is good information, thank you!

I have no idea what EU::MM is.  Candy from Europe?


2. where the DB that the app builds should go


That's probably something your application should allow to be  
specified, either a command line option to the script or an option  
to the module, or both.



My plan was to run the script the first time under Build.PL, to
verify that it succeeds and because without the DB there can be no
testing.  In which case, asking the user where to put the DB, and
propagating the answer to the script source and the module source,
seems to me like the easiest course for everyone.  This kind of
prompt is not evil, in that the automated testers can be handled
by giving the query a default, maybe '/tmp'.


How can such necessary things be determined, other than by asking
the user?


If it's a run time option (and can be changed or multiple programs  
can use this and thus want different values) don't ask for it at  
install time.



It's not a run time option.  The subject is a mod_perl2 script, that
can only be used within the Apache2 server.  I can't conceive why the
DB name would ever change, and multiple programs won't use the module.


I was just going to add a note before or after these two queries,
that if they have a mod_perl2 library and want the module to go
there, they should do this.


Putting extra docs in your module is ok, but I personally wouldn't  
repeat the docs that are already out there.



I personally regard docs already out there as things that should
be restated in here whenever the user can profit from them.


As I just wrote to Perrin off-list, since only a tiny fraction of
CPAN downloads are mod_perl2 modules, no one can configure CPAN
for a mod_perl2 library.


All perl libraries should go in the same place IMO. Whether it's  
Apache specific, or GTK or something else. I don't want to have to  
mess with @INC just because someone put something someplace non- 
standard.


It seems that you and Perrin are in the same boat, which has One Perl
Library For All painted on it.  I am in a different boat with the
authors of various mod_perl books.  I set up my site under the guidance
of Practical mod_perl p. 34:

  Now you have to select a directory where all the mod_perl scripts  
and

  modules will be placed. We usually create a directory called modperl
  under our home directory for this purpose (e.g., /home/stas/modperl),
  but it is also common to create a directory called perl under your
  Apache server root, such as /usr/local/apache/perl.

(It's /usr/local/apache2/plib on my site.)

This theme is echoed on p. 58 of the mod_perl2 User's Guide:

  You often need to adjust the contents of @INC before the server  
starts,
  usually to give the server additional places to look for your  
mod_perl code.

  There are several ways to do this:

  • startup.pl

  In the startup file you can use the lib pragma like so:

  use lib qw(/home/httpd/projectl/lib/tmp/lib);
  use lib qw(/home/httpd/project2/lib);

  • httpd.conf

  In httpd.conf you can use the PerlSwitches directive to pass  
arguments

  to Perl as you do from the command line.

  PerlSwitches -I/home/httpd/projectl/lib -I/tmp/lib
  PerlSwitches -I/home/httpd/project2/lib

And on p. 61 of the mod_perl Developer's Cookbook:

  For a similar option, configure your startup.pl as
  use lib qw(/home/www/lib);
  ...
  By default, mod_perl adds two directories to @INC: ServerRoot/ and
  ServerRoot/lib/perl/, where ServerRoot is the value of the ServerRoot
  directive.
  ...
  If you are using a startup.pl to preload your modules, you will
  probably need to take advantage of the use lib syntax.

Given all this, I blithely talk about the mod_perl library as if
it's a standard part of every mod_perl site, and you and Perrin
regard me as someone from another planet.

Which is actually true, but that's another story.



So now if Makefile.PL doesn't find 'mm' in /usr/local/lib, it
prompts the user to enter the path to 'mm', which is then passed
to Devel::CheckLib.  The query is accompanied by a note showing
the URL from which 'mm' can be downloaded.


Personally, I'd just bomb out if you can't find the lib (and  
Devel::CheckLib is good for that). Give the user a message that you  
can't find the library and then exit. I doubt that someone who has  
a library that's not in the system libs will know where it is, and  
if they do they can just as easily set LD_LIBRARY_PATH themselves.



This happens to me fairly regularly when 

Re: mod_perl on win32

2009-08-26 Thread Randy Kobes
On Wed, Aug 26, 2009 at 12:40 PM, Michiel Beijenmichiel.bei...@otrs.com wrote:
 Foo JH wrote:

 I'd suggest to get your mp2 up with the following stack:
 Apache22 Windows binary
 ActivePerl binary
 precompiled mod_perl2 + libapreq2 from the repo

 That would be the easy way, right ;-)

 The thing is, my project uses a software bundle which includes Apache and
 Strawberry for the Windows installer. Due to licensing requirements you
 could not bundle ActiveState in an open source product; therefore the
 Strawberry requirement. It is just too bad that ApachePerl is not alive
 anymore. Any tips for compiling mod_perl with Strawberry are still welcome!

 Regards,
 Michiel

Recent Strawberry distributions contain the ppm utility, which can be
used to install ppm packages. I'm not sure if the relevant ppm
package:
http://perl.apache.org/docs/2.0/os/win32/install.html#PPM_Packages
for mod_perl and libapreq2 would be compatible, but it would probably
be worth trying.

-- 
best regards,
Randy