Apache2::ServerRec - Perl API for Apache server record accessors
use Apache2::ServerRec (); $error_fname = $s->error_fname(); $is_virtual = $s->is_virtual(); $keep_alive = $s->keep_alive(); $keep_alive_max = $s->keep_alive_max(); $keep_alive_timeout = $s->keep_alive_timeout(); $limit_req_fields = $s->limit_req_fields(); $limit_req_fieldsize = $s->limit_req_fieldsize(); $limit_req_line = $s->limit_req_line(); $path = $s->path(); $hostname = $s->server_hostname(); $port = $s->port(); $server_admin = $s->server_admin(); $proc = $s->process(); $timeout = $s->timeout(); $loglevel = $s->loglevel(); my $server = Apache2::ServerUtil->server; my $vhosts = 0; for (my $s = $server->next; $s; $s = $s->next) { $vhosts++; } print "There are $vhosts virtual hosts";
Apache2::ServerRec provides the Perl API for Apache server_rec object.
Apache2::ServerRec
Apache2::ServerUtil provides an extra functionality.
Apache2::ServerUtil
Apache2::ServerRec provides the following functions and/or methods:
error_fname
Get/set the ErrorLog file value (e.g. logs/error_log)
ErrorLog
$error_fname = $s->error_fname(); $prev_error_fname = $s->error_fname($new_error_fname);
$s
Apache2::ServerRec object
$new_error_fname
If passed, sets the new value for ErrorLog
Note the limited functionality under threaded MPMs.
$error_fname
Returns the ErrorLog value setting.
If $new_error_fname is passed returns the setting before the change.
is_virtual
Test whether $s is a virtual host object
$is_virtual = $s->is_virtual();
$is_virtual
Returns the is_virtual setting.
If $new_is_virtual is passed, returns the setting before the change.
$new_is_virtual
Example:
print "This is a virtual host" if $s->is_virtual();
keep_alive
Get/set the KeepAlive setting, which specifies whether Apache should accept more than one request over the same connection from the same client.
KeepAlive
$keep_alive = $s->keep_alive(); $prev_keep_alive = $s->keep_alive($new_keep_alive);
$new_keep_alive
If passed, sets the new keep_alive.
$keep_alive
Returns the KeepAlive setting.
If $new_keep_alive is passed, returns the setting before the change.
keep_alive_max
Get/set the MaxKeepAliveRequest setting, which specifies the maximum number of requests Apache will serve over a KeepAlive connection.
MaxKeepAliveRequest
$keep_alive_max = $s->keep_alive_max(); $prev_keep_alive_max = $s->keep_alive_max($new_keep_alive_max);
$new_keep_alive_max
If passed, sets the new keep_alive_max.
$keep_alive_max
Returns the keep_alive_max setting.
If $new_keep_alive_max is passed, returns the setting before the change.
keep_alive_timeout
Get/set the KeepAliveTimeout setting (in microsecs), which specifies how long Apache will wait for another request before breaking a KeepAlive connection.
KeepAliveTimeout
$keep_alive_timeout = $s->keep_alive_timeout(); $prev_keep_alive_timeout = $s->keep_alive_timeout($new_timeout);
$new_keep_alive_timeout
The expected value is in microsecs.
If passed, sets the new KeepAlive timeout.
$keep_alive_timeout
Returns the KeepAlive timeout value (in microsecs).
If $new_timeout is passed, returns the setting before the change.
$new_timeout
limit_req_fields
Get/set limit on number of request header fields
$limit_req_fields = $s->limit_req_fields(); $prev_limit_req_fields = $s->limit_req_fields($new_limit_req_fields);
$new_limit_req_fields
If passed, sets the new request headers number limit.
$limit_req_fields
Returns the request headers number limit.
If $new_limit_req_fields is passed, returns the setting before the change.
limit_req_fieldsize
Get/set limit on size of any request header field
$limit_req_fieldsize = $s->limit_req_fieldsize(); $prev_limit = $s->limit_req_fieldsize($new_limit);
$new_limit_req_fieldsize
If passed, sets the new request header size limit.
$limit_req_fieldsize
Returns the request header size limit.
If $new_limit is passed, returns the setting before the change.
$new_limit
limit_req_line
Get/set limit on size of the HTTP request line
$limit_req_line = $s->limit_req_line(); $prev_limit_req_line = $s->limit_req_line($new_limit_req_line);
$new_limit_req_line
If passed, sets the new request line limit value.
$limit_req_line
Returns the request line limit value
If $new_limit_req_line is passed, returns the setting before the change.
loglevel
Get/set the LogLevel directive value
LogLevel
$loglevel = $s->loglevel(); $prev_loglevel = $s->loglevel($new_loglevel);
$new_loglevel
Apache2::Const :log constant
If passed, sets a new LogLevel value
$loglevel
Returns the LogLevel value as a constant.
If $new_loglevel is passed, returns the setting before the change.
For example, to set the LogLevel value to info:
info
use Apache2::Const -compile => qw(LOG_INFO); $s->loglevel(Apache2::Const::LOG_INFO);
next
The next server record in the list (if there are vhosts)
$s_next = $s->next();
$s_next
For example the following code traverses all the servers, starting from the base server and continuing to vhost servers, counting all available vhosts:
use Apache2::ServerRec (); use Apache2::ServerUtil (); my $server = Apache2::ServerUtil->server; my $vhosts = 0; for (my $s = $server->next; $s; $s = $s->next) { $vhosts++; } print "There are $vhosts virtual hosts";
path
Get/set pathname for the ServerPath setting
ServerPath
$path = $s->path(); $prev_path = $s->path($new_path);
$new_path
If passed, sets the new path.
$path
Returns the path setting.
If $new_path is passed, returns the setting before the change.
port
Get/set the port value
$port = $s->port(); $prev_port = $s->port($new_port);
$new_port
If passed, sets the new port.
META: I don't think one should be allowed to change port number after the server has started.
$port
Returns the port setting.
If $new_port is passed returns the setting before the change.
process
The process this server is running in
$proc = $s->process();
$proc
Apache2::Process object
server_admin
Get/set the ServerAdmin value
ServerAdmin
$server_admin = $s->server_admin(); $prev_server_admin = $s->server_admin($new_server_admin);
$new_server_admin
If passed, sets the new ServerAdmin value.
$server_admin
Returns the ServerAdmin value.
If $new_server_admin is passed, returns the setting before the change.
server_hostname
Get/set the ServerName value
ServerName
$server_hostname = $s->server_hostname(); $prev_server_hostname = $s->server_hostname($new_server_hostname);
$new_server_hostname
If passed, sets the ServerName value
$server_hostname
Returns the ServerName value
If $new_server_hostname is passed, returns the setting before the change.
timeout
Get/set the timeout (TimeOut) (in microsecs), which Apache will wait for before it gives up doing something
TimeOut
$timeout = $s->timeout(); $prev_timeout = $s->timeout($new_timeout);
If passed, sets the new timeout (the value should be in microseconds).
$timeout
Returns the timeout setting in microseconds.
Let us repeat again: the timeout values is microseconds. For example to set the timeout to 20 secs:
$s->timeout(20_000_000);
Note that under threaded MPMs, some of the read/write accessors, will be able to set values only before threads are spawned (i.e. before the ChildInit phase). Therefore if you are developing your application on the non-threaded MPM, but planning to have it run under threaded mpm, you should not use those methods to set values after the ChildInit phase.
ChildInit phase
The affected accessor methods are marked as such in their respective documentation entries.
Apache2::ServerRec also provides auto-generated Perl interface for a few other methods which aren't tested at the moment and therefore their API is a subject to change. These methods will be finalized later as a need arises. If you want to rely on any of the following methods please contact the the mod_perl development mailing list so we can help each other take the steps necessary to shift the method to an officially supported API.
addrs
Get the addrs value
$addrs = $s->addrs();
$addrs
Apache2::ServerAddr
Returns the addrs setting.
META: this methods returns a vhost-specific Apache2::ServerAddr object, which is not implemented at the moment. See the struct server_addr_rec entry in httpd-2.0/include/httpd.h for more information. It seems that most (all?) of the information in that record is available through other APIs.
lookup_defaults
Get the lookup_defaults value. MIME type info, etc., before we start checking per-directory info.
$lookup_defaults = $s->lookup_defaults();
$lookup_defaults
Apache2::ConfVector
Returns the lookup_defaults setting.
module_config
Get config vector containing pointers to modules' per-server config structures.
$module_config = $s->module_config();
$module_config
Returns the module_config setting.
names
Get/set the value(s) for the ServerAlias setting
ServerAlias
$names = $s->names(); $prev_names = $s->names($new_names);
$new_names
APR::ArrayHeader
If passed, sets the new names.
$names
Returns the names setting.
If $new_names is passed, returns the setting before the change.
META: we don't have APR::ArrayHeader yet
wild_names
Wildcarded names for ServerAlias servers
$wild_names = $s->wild_names(); $prev_wild_names = $s->wild_names($new_wild_names);
$new_wild_names
If passed, sets the new wild_names.
$wild_names
Returns the wild_names setting.
If $new_wild_names is passed, returns the setting before the change.
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.
To install mod_perl2, copy and paste the appropriate command in to your terminal.
cpanm
cpanm mod_perl2
CPAN shell
perl -MCPAN -e shell install mod_perl2
For more information on module installation, please visit the detailed CPAN module installation guide.