|
Apache::DB - Run the interactive Perl debugger under mod_perl |
Apache::DB - Run the interactive Perl debugger under mod_perl
<Location /perl> PerlFixupHandler +Apache::DB
SetHandler perl-script PerlHandler +Apache::Registry Options +ExecCGI </Location>
Perl ships with a very useful interactive debugger, however, it does not run ``out-of-the-box'' in the Apache/mod_perl environment. Apache::DB makes a few adjustments so the two will cooperate.
#where db.pl is simply: # use Apache::DB (); # Apache::DB->init; PerlRequire conf/db.pl
#where modules are loaded PerlRequire conf/init.pl
If you are using mod_perl 2.0 you will need to use the following as your db.pl:
use APR::Pool (); use Apache::DB (); Apache::DB->init();
<Location /my-handler> PerlFixupHandler Apache::DB SetHandler perl-script PerlHandler My::handler </Location>
Security-enhanced Linux (SELinux) is a mandatory access control system many linux distrobutions are implementing. This new security scheme can assist you with protecting a server, but it doesn't come without its own set of issues. Debugging applications running on a box with SELinux on it takes a couple of extra steps and unfortunately the instructions that follow have only been tested on RedHat/Fedora.
1) You need to edit/create the file ``local.te'' and add the following:
if (httpd_tty_comm) { allow { httpd_t } admin_tty_type:chr_file { ioctl getattr }; }
2) Reload your security policy.
3) Run the command ``setsebool httpd_tty_comm true''.
You should be aware as you debug applications on a system with SELinux your code may very well be correct, but the system policy is denying your actions.
-X to use Apache::DB.
perldebug(1)
Originally written by Doug MacEachern
Currently maintained by Frank Wiles <frank@wiles.org>
This module is distributed under the same terms as Perl itself.
|
Apache::DB - Run the interactive Perl debugger under mod_perl |