Ron Savage wrote: > Definitely use Apache::Reload. Here's a bit from my httpd.conf:
First, here is code that works, but requires me to restart/graceful Apache whenever I make changes to my C::A derived module: <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat conf/vhost.conf # $Id: vhost.conf,v 1.1 2005/11/27 07:18:45 dpchrist Exp $ # # Apache configuration settings for hdwf.holgerdanske.com. # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> <VirtualHost 192.168.254.22> ServerName hdwf.holgerdanske.com ServerAdmin [EMAIL PROTECTED] DocumentRoot /home/dpchrist/hdwf/htdocs HostnameLookups off UserDir disabled Alias /images/ /home/dpchrist/hdwf/images/ </VirtualHost> <Directory /home/dpchrist/hdwf> AllowOverride All </Directory> <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat htdocs/.htaccess # $Id: .htaccess,v 1.6 2005/11/28 03:15:06 dpchrist Exp $ # # Apache configuration settings for hdwf.holgerdanske.com # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> DirectoryIndex index.pl SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI PerlSendHeader On <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat htdocs/index.pl #! /usr/bin/perl ####################################################################### # $Id: index.pl,v 1.2 2005/11/28 00:05:17 dpchrist Exp $ # # Perl instance script for hdwf.holgerdanske.com. # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> ####################################################################### use strict; use warnings; use CGI::Carp qw(fatalsToBrowser); use FindBin qw( $Bin ); use lib "$Bin/../modules"; use Hdwf; my $app = Hdwf->new(); $app->run(); ####################################################################### <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat modules/Hdwf.pm ####################################################################### # $Id: Hdwf.pm,v 1.8 2005/11/28 03:15:06 dpchrist Exp $ # # hdwf.holgerdanske.com CGI::Application module. # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> ####################################################################### # uses: #---------------------------------------------------------------------- use warnings; use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); package Hdwf; use base 'CGI::Application'; ####################################################################### # overloaded CGI::Application methods: #---------------------------------------------------------------------- sub setup { my $self = shift; $self->start_mode('home'); $self->mode_param('rm'); $self->run_modes( 'home' => 'home', ); } ####################################################################### # run modes: #---------------------------------------------------------------------- sub home { return "hello, world!"; } ####################################################################### # end of module: #---------------------------------------------------------------------- 1; __END__ ####################################################################### Adding the Apache::Reload lines to vhosts.conf: <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat conf/vhost.conf # $Id: vhost.conf,v 1.1 2005/11/27 07:18:45 dpchrist Exp $ # # Apache configuration settings for hdwf.holgerdanske.com. # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> <VirtualHost 192.168.254.22> ServerName hdwf.holgerdanske.com ServerAdmin [EMAIL PROTECTED] DocumentRoot /home/dpchrist/hdwf/htdocs HostnameLookups off UserDir disabled Alias /images/ /home/dpchrist/hdwf/images/ </VirtualHost> <Directory /home/dpchrist/hdwf> AllowOverride All PerlModule Apache::Reload PerlInitHandler Apache::Reload PerlSetVar ReloadAll Off PerlSetVar ReloadModules "Hdwf Hdwf::*" </Directory> Doing a graceful restart of Apache and browsing to http://hdwf.holgerdanske.com/, it works the first time, fails on refresh, works on the second refresh, and then fails on all subsequent refreshes (tested twenty). I have my server configured to start one thread, with a minimum and maximum of one spare thread. Here's the error log: [Sun Nov 27 19:40:12 2005] [notice] SIGUSR1 received. Doing graceful restart [Sun Nov 27 19:40:13 2005] [notice] Apache/1.3.33 (Debian GNU/Linux) mod_perl/1. 29 configured -- resuming normal operations [Sun Nov 27 19:40:13 2005] [notice] Accept mutex: sysvsem (Default: sysvsem) [Sun Nov 27 19:40:41 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:04 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:14 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:28 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:29 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:30 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:31 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:32 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:33 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:34 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:34 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:35 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:39 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:43 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:44 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:45 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:46 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:47 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n [Sun Nov 27 19:41:48 2005] [error] Can't locate Hdwf.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 / usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . /etc/apache-perl/ /etc/apache-perl/lib/perl) at /usr/local/share/perl/5.8.4/Apa che/Reload.pm line 132.\n It would appear that Apache::Reload is losing the Perl library path information set by FindBin in the instance script. Trying again, but this time putting the Apache::Reload stuff into .htaccess: <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat htdocs/.htaccess # $Id: .htaccess,v 1.6 2005/11/28 03:15:06 dpchrist Exp $ # # Apache configuration settings for hdwf.holgerdanske.com # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> DirectoryIndex index.pl SetHandler perl-script PerlModule Apache::Reload PerlInitHandler Apache::Reload PerlSetVar ReloadAll Off PerlSetVar ReloadModules "Hdwf Hdwf::*" PerlHandler Apache::Registry Options +ExecCGI PerlSendHeader On The results are identical to above. Keeping Apache::Reload in .htaccess and adding "use Apache::Reload" to my C::A derived module: <CVSENV>[EMAIL PROTECTED]:~/hdwf$ cat modules/Hdwf.pm ####################################################################### # $Id: Hdwf.pm,v 1.8 2005/11/28 03:15:06 dpchrist Exp $ # # hdwf.holgerdanske.com CGI::Application module. # # Copyright 2005 by David Christensen <[EMAIL PROTECTED]> ####################################################################### # uses: #---------------------------------------------------------------------- use warnings; use strict; use Apache::Reload; use CGI; use CGI::Carp qw(fatalsToBrowser); package Hdwf; use base 'CGI::Application'; ####################################################################### # overloaded CGI::Application methods: #---------------------------------------------------------------------- sub setup { my $self = shift; $self->start_mode('home'); $self->mode_param('rm'); $self->run_modes( 'home' => 'home', ); } ####################################################################### # run modes: #---------------------------------------------------------------------- sub home { return "hello, world!"; } ####################################################################### # end of module: #---------------------------------------------------------------------- 1; __END__ ####################################################################### The results are identical to above. Any suggestions? TIA, David --------------------------------------------------------------------- Web Archive: http://www.mail-archive.com/cgiapp@lists.erlbaum.net/ http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2 To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]