DB(3pm) | User Contributed Perl Documentation | DB(3pm) |
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.
Originally written by Doug MacEachern
Currently maintained by Dirk Lindner <lze@cpan.org>
This module is distributed under the same terms as Perl itself.
2022-11-29 | perl v5.36.0 |