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
work::mod_perl-2.0.13::docs::api::Apache2::Module(3) User Contributed Perl Documentation work::mod_perl-2.0.13::docs::api::Apache2::Module(3)

Apache2::Module - Perl API for creating and working with Apache modules

  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')) {
      [...]
  }

"Apache2::Module" provides the Perl API for creating and working with Apache modules

See Apache Server Configuration Customization in Perl.

"Apache2::Module" provides the following functions and/or methods:

Add a module's custom configuration directive to Apache.

  Apache2::Module::add($package, $cmds);
the package of the module to add
the list of configuration directives to add

See also Apache Server Configuration Customization in Perl.

Get the httpd API version this module was build against, not the module's version.

  $major_version = $module->ap_api_major_version();

This methid is used to check that module is compatible with this version of the server before loading it.

Get the module API minor version.

  $minor_version = $module->ap_api_minor_version();

ap_api_minor_version() provides API feature milestones.

It's not checked during module init.

Get the "Apache2::Command" object, describing all of the directives this module defines.

  $command = $module->cmds();

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);
The Perl package this configuration is for
The current server, typically "$r->server" or "$parms->server".
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.
A reference to the hash holding the module configuration data.

See also Apache Server Configuration Customization in Perl.

Find a module based on the name of the module

  $module = Apache2::Module::find_linked_module($name);
The name of the module ending in ".c"
The module object if found, "undef" otherwise.

For example:

  my $module = Apache2::Module::find_linked_module('mod_ssl.c');

Determine if a certain module is loaded

  $loaded = Apache2::Module::loaded($module);
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).

Returns true if the module is loaded, false otherwise.

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')) {
      [...]
  }

Get the index to this modules structures in config vectors.

  $index = $module->module_index();

Get the name of the module's .c file

  $name = $module->name();

For example a mod_perl module, will return: mod_perl.c.

Get the next module in the list, "undef" if this is the last module in the list.

  $next_module = $module->next();

Remove a module from the list of loaded modules permanently.

  $module->remove_loaded_module();

Returns the first module in the module list. Usefull to start a module iteration.

  $module = Apache2::Module::top_module();

mod_perl 2.0 documentation.

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

The mod_perl development team and numerous contributors.

2023-10-21 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

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