Provided by: libapache-db-perl_0.14-4build6_amd64 bug


       Apache::DB - Run the interactive Perl debugger under mod_perl


        <Location /perl>
         PerlFixupHandler +Apache::DB

         SetHandler perl-script
         PerlHandler +Apache::Registry
         Options +ExecCGI


       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.


           This function initializes the Perl debugger hooks without actually starting the
           interactive debugger.  In order to debug a certain piece of code, this function must
           be called before the code you wish debug is compiled.  For example, if you want to
           insert debugging symbols into code that is compiled at server startup, but do not care
           to debug until request time, call this function from a PerlRequire'd file:

            #where is simply:
            # use Apache::DB ();
            # Apache::DB->init;
            PerlRequire conf/

            #where modules are loaded
            PerlRequire conf/

           If you are using mod_perl 2.0 you will need to use the following as your

             use APR::Pool ();
             use Apache::DB ();

           This function will start the interactive debugger.  It will invoke Apache::DB::init if
           needed.  Example configuration:

            <Location /my-handler>
             PerlFixupHandler Apache::DB
             SetHandler perl-script
             PerlHandler My::handler


       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  The server must be started with the "-X" to use Apache::DB.

       filename/line info
           The filename of Apache::Registry scripts is not displayed.




       Originally written by Doug MacEachern

       Currently maintained by Frank Wiles <>


       This module is distributed under the same terms as Perl itself.