GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  APACHE2::DIRECTIVE (3)

.ds Aq ’

NAME

Apache2::Directive - Perl API for manipulating the Apache configuration tree

CONTENTS

Synopsis



  use Apache2::Directive ();
 
  my $tree = Apache2::Directive::conftree();
 
  my $documentroot = $tree->lookup(DocumentRoot);
 
  my $vhost = $tree->lookup(VirtualHost, localhost:8000);
  my $servername = $vhost->{ServerName};
 
  use Data::Dumper;
  print Dumper $tree->as_hash;
 
  my $node = $tree;
  while ($node) {
      print $node->as_string;
 
      #do something with $node
 
      my $directive = $node->directive;
      my $args = $node->args;
      my $filename = $node->filename;
      my $line_num = $node->line_num;
 
      if (my $kid = $node->first_child) {
          $node = $kid;
      }
      elsif (my $next = $node->next) {
          $node = $next;
      }
      else {
          if (my $parent = $node->parent) {
              $node = $parent->next;
          }
          else {
              $node = undef;
          }
      }
  }



Description

Apache2::Directive provides the Perl API for manipulating the Apache configuration tree

API

Apache2::Directive provides the following functions and/or methods:

CWargs

Get the arguments for the current directive:



  $args = $node->args();



obj: $node ( Apache2::Directive object )
ret: $args ( string ) Arguments are separated by a whitespace in the string.
since: 2.0.00
For example, in httpd.conf:



  PerlSwitches -M/opt/lib -M/usr/local/lib -wT



And later:



  my $tree = Apache2::Directive::conftree();
  my $node = $tree->lookup(PerlSwitches);
  my $args = $node->args;



$args now contains the string -M/opt/lib -M/usr/local/lib -wT

CWas_hash

Get a hash representation of the configuration tree, in a format suitable for inclusion in <Perl> sections.



   $config_hash = $conftree->as_hash();



obj: $conftree ( Apache2::Directive object ) The config tree to stringify
ret: $config_hash ( HASH reference )
since: 2.0.00
For example: in httpd.conf:



  <Location /test>
    SetHandler perl-script
    PerlHandler Test::Module
  </Location>



And later:



  my $tree = Apache2::Directive::conftree();
  my $node = $tree->lookup(Location, /test/);
  my $hash = $node->as_hash;



$hash now is:



  {
    SetHandler  => perl-script,
    PerlHandler => Test::Module,
  }



CWas_string

Get a string representation of the configuration node, in httpd.conf format.



   $string = $node->as_string();



obj: $node ( Apache2::Directive object ) The config tree to stringify
ret: $string ( string )
since: 2.0.00
For example: in httpd.conf:



  <Location /test>
    SetHandler perl-script
    PerlHandler Test::Module
  </Location>



And later:



  my $tree = Apache2::Directive::conftree();
  my $node = $tree->lookup(Location, /test/);
  my $string = $node->as_string;



$string is now:



  SetHandler perl-script
  PerlHandler Test::Module



CWconftree

Get the root of the configuration tree:



  $conftree = Apache2::Directive::conftree();



obj: Apache2::Directive ( class name )
ret: $conftree ( Apache2::Directive object )
since: 2.0.00

CWdirective

Get the name of the directive in $node:



  $name = $node->directive();



obj: $node ( Apache2::Directive object )
ret: $name ( string )
since: 2.0.00

CWfilename

Get the filename the configuration node was created from:



  $filename = $node->filename();



obj: $node ( Apache2::Directive object )
ret: $filename ( string )
since: 2.0.00
For example:



  my $tree = Apache2::Directive::conftree();
  my $node = $tree->lookup(VirtualHost, example.com);
  my $filename = $node->filename;



$filename is now the full path to the httpd.conf that VirtualHost was defined in.

If the directive was added with add_config(), the filename will be the path to the httpd.conf that trigerred that Perl code.

CWfirst_child

Get the first child node of this directive:



  $child_node = $node->first_child;



obj: $node ( Apache2::Directive object )
ret: $child_node ( Apache2::Directive object ) Returns the first child node of $node, undef if there is none
since: 2.0.00

CWline_num

Get the line number in a filename this node was created at:



  $lineno = $node->line_num();



obj: $node ( Apache2::Directive object )
arg1: $lineno (integer)
since: 2.0.00

CWlookup

Get the node(s) matching a certain value.



  $node  = $conftree->lookup($directive, $args);
  @nodes = $conftree->lookup($directive, $args);



obj: $conftree ( Apache2::Directive object ) The config tree to stringify
arg1: $directive ( string ) The name of the directive to search for
opt arg2: args ( string ) Optional args to the directive to filter for
ret: $string ( string / ARRAY of HASH refs ) In LIST context, it returns all matching nodes.

In SCALAR context, it returns only the first matching node.

If called with only $directive value, this method returns all nodes from that directive. For example:



  @Alias = $conftree->lookup(Alias);



returns all nodes for Alias directives.

If called with an extra $args argument, it returns only nodes where both the directive and the args matched. For example:



  $VHost = $tree->lookup(VirtualHost, _default_:8000);



since: 2.0.00

CWnext

Get the next directive node in the tree:



  $next_node = $node->next();



obj: $node ( Apache2::Directive object )
ret: $next_node ( Apache2::Directive object ) Returns the next sibling of $node, undef if there is none
since: 2.0.00

CWparent

Get the parent node of this directive:



  $parent_node = $node->parent();



obj: $node ( Apache2::Directive object )
ret: parent_node ( Apache2::Directive object ) Returns the parent of $node, undef if this node is the root node
since: 2.0.00

See Also

mod_perl 2.0 documentation.

Copyright

mod_perl 2.0 and its core modules are copyrighted under The Apache Software License, Version 2.0.

Authors

The mod_perl development team and numerous contributors.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 WORK::MOD_PERL-2.0.9::DOCS::API::APACHE2::DIRECTIVE (3) 2015-06-18

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.