Check out the Apache::Reload module. It allows code in your .pm files to be recompiled automatically when a change to the file is detected - essential for development.
Update: When I do need to do a graceful restart on the Apache server (eg: to pick up changes to the config file) I tend not to use apachectl directly. If there is a bug in your code or config, it won't be detected until the server tries (and fails) to restart. This leaves you with two problems: the server is down and you have broken code which must be fixed before the server will start. Pressure!
A safer option is to use a custom script which first does a syntax check of you httpd.conf and any Perl modules it loads. If that succeeds that it's safe to call apachctl. Here's the relevant part of my initserver script:
#!/bin/sh SERVER="/usr/sbin/httpd" CONFIG="/etc/httpd/conf/httpd.conf" ARGS=`/bin/ls /usr/lib/apache | perl -nle 'm{^(?:mod_|lib)(.*?)(\.so)? +$} && print uc("-DHAVE_$1")'` if ! $SERVER -T $ARGS -f $CONFIG then echo "Server not restarted due to errors in config file" exit 1 fi apachectl graceful
The ARGS=... line adds command line arguments like -DHAVE_PERL, -DHAVE_REWRITE etc for all the modules which are loaded dynamically. You may or may not need that.
In reply to Re: mod_perl caching
by grantm
in thread mod_perl caching
by e_macks
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |