SERVERUTIL(1) User Contributed Perl Documentation SERVERUTIL(1)NAME
Apache::ServerUtil -- Methods for work with Apache::Server object
SYNOPSIS
use Apache::ServerUtil;
$s = Apache->server;
my $srv_cfg = $s->dir_config;
# get 'conf/' dir path using $r
my $conf_dir = Apache::server_root_relative('conf', $r->pool);
# get 'log/' dir path using default server startup pool
my $log_dir = Apache::server_root_relative('log');
DESCRIPTION
"Apache::ServerUtil" provides the Perl API for Apache server object.
META: complete
API
Function arguments (if any) and return values are shown in the function's synopsis.
CONSTANTS
o server_root
returns the value set by the "ServerRoot" directive.
FUNCTIONS
o server_root_relative()
Returns the canonical form of the filename made absolute to "ServerRoot":
Apache::server_root_relative($pool, $fname);
$fname is appended to the value of "ServerRoot" and return it. e.g.:
my $log_dir = Apache::server_root_relative($r->pool, 'logs');
If $fname is not specified, the value of "ServerRoot" is returned with a trailing "/". (it's the same as using '' as $fname's value).
Also see the "server_root" constant.
METHODS
o server()
The main server's object can be retrieved with:
$s = Apache->server;
Gets the "Apache::Server" object for the main server.
o dir_config()
dir_config() provides an interface for the per-server variables specified by the "PerlSetVar" and "PerlAddVar" directives, and also can
be manipulated via the "APR::Table" methods.
The keys are case-insensitive.
$t = $s->dir_config();
dir_config() called in a scalar context without the $key argument returns a HASH reference blessed into the APR::Table class. This
object can be manipulated via the APR::Table methods. For available methods see APR::Table.
@values = $s->dir_config($key);
If the $key argument is passed in the list context a list of all matching values will be returned. This method is ineffective for big
tables, as it does a linear search of the table. Thefore avoid using this way of calling dir_config() unless you know that there could
be more than one value for the wanted key and all the values are wanted.
$value = $s->dir_config($key);
If the $key argument is passed in the scalar context only a single value will be returned. Since the table preserves the insertion
order, if there is more than one value for the same key, the oldest value assosiated with the desired key is returned. Calling in the
scalar context is also much faster, as it'll stop searching the table as soon as the first match happens.
$s->dir_config($key => $val);
If the $key and the $val arguments are used, the set() operation will happen: all existing values associated with the key $key (and the
key itself) will be deleted and $value will be placed instead.
$s->dir_config($key => undef);
If $val is undef the unset() operation will happen: all existing values associated with the key $key (and the key itself) will be
deleted.
o push_handlers()
o add_handlers()
o get_handlers()
perl v5.8.0 2002-05-19 SERVERUTIL(1)
Check Out this Related Man Page
apache_mod_perl-108~358::mod_perl-2.0.7::docs::api::ApacUser:Contributed Perapache_mod_perl-108~358::mod_perl-2.0.7::docs::api::Apache2::Module(3)NAME
Apache2::Module - Perl API for creating and working with Apache modules
Synopsis
use Apache2::Module ();
#Define a configuration directive
my @directives = (
{
name => 'MyDirective',
}
);
Apache2::Module::add(__PACKAGE__, @directives);
# iterate over the whole module list
for (my $modp = Apache2::Module::top_module(); $modp; $modp = $modp->next) {
my $name = $modp->name;
my $index = $modp->module_index;
my $ap_api_major_version = $modp->ap_api_major_version;
my $ap_api_minor_version = $modp->ap_api_minor_version;
my $commands = $modp->cmds;
}
# find a specific module
my $module = Apache2::Module::find_linked_module('mod_ssl.c');
# remove a specific module
$module->remove_loaded_module();
# access module configuration from a directive
sub MyDirective {
my ($self, $parms, $args) = @_;
my $srv_cfg = Apache2::Module::get_config($self, $parms->server);
[...]
}
# test if an Apache module is loaded
if (Apache2::Module::loaded('mod_ssl.c')) {
[...]
}
# test if a Perl module is loaded
if (Apache2::Module::loaded('Apache2::Status')) {
[...]
}
Description
"Apache2::Module" provides the Perl API for creating and working with Apache modules
See Apache Server Configuration Customization in Perl.
API
"Apache2::Module" provides the following functions and/or methods:
"add"
Add a module's custom configuration directive to Apache.
Apache2::Module::add($package, $cmds);
arg1: $package ( string )
the package of the module to add
arg2: $cmds ( ARRAY of HASH refs )
the list of configuration directives to add
ret: no return value
since: 2.0.00
See also Apache Server Configuration Customization in Perl.
"ap_api_major_version"
Get the httpd API version this module was build against, not the module's version.
$major_version = $module->ap_api_major_version();
obj: $module ( "Apache2::Module object" )
ret: $major_version ( integer )
since: 2.0.00
This methid is used to check that module is compatible with this version of the server before loading it.
"ap_api_minor_version"
Get the module API minor version.
$minor_version = $module->ap_api_minor_version();
obj: $module ( "Apache2::Module object" )
ret: $minor_version ( integer )
since: 2.0.00
"ap_api_minor_version()" provides API feature milestones.
It's not checked during module init.
"cmds"
Get the "Apache2::Command" object, describing all of the directives this module defines.
$command = $module->cmds();
obj: $module ( "Apache2::Module object" )
ret: $command ( "Apache2::Command object" )
since: 2.0.00
"get_config"
Retrieve a module's configuration. Used by configuration directives.
$cfg = Apache2::Module::get_config($class, $server, $dir_config);
$cfg = Apache2::Module::get_config($class, $server);
$cfg = $self->get_config($server, $dir_config);
$cfg = $self->get_config($server);
obj: $module ( "Apache2::Module object" )
arg1: $class ( string )
The Perl package this configuration is for
arg2: $server ( "Apache2::ServerRec object" )
The current server, typically "$r->server" or "$parms->server".
opt arg3: $dir_config ( "Apache2::ConfVector object" )
By default, the configuration returned is the server level one. To retrieve the per directory configuration, use "$r->per_dir_config"
as a last argument.
ret: $cfg (HASH reference)
A reference to the hash holding the module configuration data.
since: 2.0.00
See also Apache Server Configuration Customization in Perl.
"find_linked_module"
Find a module based on the name of the module
$module = Apache2::Module::find_linked_module($name);
arg1: $name ( string )
The name of the module ending in ".c"
ret: $module ( "Apache2::Module object" )
The module object if found, "undef" otherwise.
since: 2.0.00
For example:
my $module = Apache2::Module::find_linked_module('mod_ssl.c');
"loaded"
Determine if a certain module is loaded
$loaded = Apache2::Module::loaded($module);
name: $module ( string )
The name of the module to search for.
If $module ends with ".c", search all the modules, statically compiled and dynamically loaded.
If $module ends with ".so", search only the dynamically loaded modules.
If $module doesn't contain a ".", search the loaded Perl modules (checks %INC).
ret: $loaded ( boolean )
Returns true if the module is loaded, false otherwise.
since: 2.0.00
For example, to test if this server supports ssl:
if (Apache2::Module::loaded('mod_ssl.c')) {
[...]
}
To test is this server dynamically loaded mod_perl:
if (Apache2::Module::loaded('mod_perl.so')) {
[...]
}
To test if "Apache2::Status" is loaded:
if (Apache2::Module::loaded('Apache2::Status')) {
[...]
}
"module_index"
Get the index to this modules structures in config vectors.
$index = $module->module_index();
obj: $module ( "Apache2::Module object" )
ret: $index ( integer )
since: 2.0.00
"name"
Get the name of the module's .c file
$name = $module->name();
obj: $module ( "Apache2::Module object" )
ret: $name ( string )
since: 2.0.00
For example a mod_perl module, will return: mod_perl.c.
"next"
Get the next module in the list, "undef" if this is the last module in the list.
$next_module = $module->next();
obj: $module ( "Apache2::Module object" )
ret: $next_module ( "Apache2::Module object" )
since: 2.0.00
"remove_loaded_module"
Remove a module from the list of loaded modules permanently.
$module->remove_loaded_module();
obj: $module ( "Apache2::Module object" )
ret: no return value
since: 2.0.00
"top_module"
Returns the first module in the module list. Usefull to start a module iteration.
$module = Apache2::Module::top_module();
ret: $module ( "Apache2::Module object" )
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.16.2 2011-02-apache_mod_perl-108~358::mod_perl-2.0.7::docs::api::Apache2::Module(3)