Apache2::Directive man page on Mandriva

Man page or keyword search:  
man Server   17060 pages
apropos Keyword Search (all sections)
Output format
Mandriva logo
[printable version]

docs::api::Apache2::DiUseriContributed Perl Dodocs::api::Apache2::Directive(3)

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

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:

   "args"
       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"

   "as_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',
	 }

   "as_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

   "conftree"
       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

   "directive"
       Get the name of the directive in $node:

	 $name = $node->directive();

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

   "filename"
       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.

   "first_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

   "line_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

   "lookup"
       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

   "next"
       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

   "parent"
       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.

perl v5.10.1			  2007-11-12  docs::api::Apache2::Directive(3)
[top]

List of man pages available for Mandriva

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net