|
Apache::ServerRec - Perl API for Apache server record accessors |
error_fnameis_virtualkeep_alivekeep_alive_maxkeep_alive_timeoutlimit_req_fieldslimit_req_fieldsizelimit_req_lineloglevelnextpathportprocessserver_adminserver_hostnametimeout
Apache::ServerRec - Perl API for Apache server record accessors
use Apache::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 = Apache->server;
my $vhosts = 0;
for (my $s = $server->next; $s; $s = $s->next) {
$vhosts++;
}
print "There are $vhosts virtual hosts";
Apache::ServerRec provides the Perl API for Apache server_rec
object.
Apache::ServerUtil|docs::2.0::api::Apache::ServerUtil provides
an extra functionality.
Apache::ServerRec provides the following functions and/or methods:
error_fnameGet/set the ErrorLog file value (e.g. logs/error_log)
$error_fname = $s->error_fname(); $prev_error_fname = $s->error_fname($new_error_fname);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_error_fname ( string )ErrorLog
$error_fname ( string )ErrorLog value setting.
If $new_error_fname is passed returns the setting before the change.
is_virtualTest whether $s is a virtual host object
$is_virtual = $s->is_virtual();
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$is_virtual ( boolean )If $new_is_virtual is passed, returns the setting before the
change.
Example:
print "This is a virtual host" if $s->is_virtual();
keep_aliveGet/set the KeepAlive setting, which specifies whether Apache
should accept more than one request over the same connection from the
same client.
$keep_alive = $s->keep_alive(); $prev_keep_alive = $s->keep_alive($new_keep_alive);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_keep_alive ( boolean )$keep_alive ( boolean )KeepAlive setting.
If $new_keep_alive is passed, returns the setting before the
change.
keep_alive_maxGet/set the MaxKeepAliveRequest setting, which specifies the
maximum number of requests Apache will serve over a KeepAlive
connection.
$keep_alive_max = $s->keep_alive_max(); $prev_keep_alive_max = $s->keep_alive_max($new_keep_alive_max);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_keep_alive_max ( integer )$keep_alive_max ( integer )If $new_keep_alive_max is passed, returns the setting before the
change.
keep_alive_timeoutGet/set the KeepAliveTimeout setting (in microsecs), which
specifies how long Apache will wait for another request before
breaking a KeepAlive connection.
$keep_alive_timeout = $s->keep_alive_timeout(); $prev_keep_alive_timeout = $s->keep_alive_timeout($new_timeout);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_keep_alive_timeout ( integer )If passed, sets the new KeepAlive timeout.
$keep_alive_timeout ( integer )KeepAlive timeout value (in microsecs).
If $new_timeout is passed, returns the setting before the change.
limit_req_fieldsGet/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);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_limit_req_fields ( integer )$limit_req_fields ( integer )If $new_limit_req_fields is passed, returns the setting before the
change.
limit_req_fieldsizeGet/set limit on size of any request header field
$limit_req_fieldsize = $s->limit_req_fieldsize(); $prev_limit = $s->limit_req_fieldsize($new_limit);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_limit_req_fieldsize ( integer )$limit_req_fieldsize ( integer )If $new_limit is passed, returns the setting before the change.
limit_req_lineGet/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);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_limit_req_line ( integer )$limit_req_line ( integer )If $new_limit_req_line is passed, returns the setting before the
change.
loglevelGet/set the LogLevel directive value
$loglevel = $s->loglevel(); $prev_loglevel = $s->loglevel($new_loglevel);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_loglevel ( Apache::Const :log
constant|docs::2.0::api::Apache::Const/C__log_> )LogLevel value
$loglevel ( Apache::Const :log
constant|docs::2.0::api::Apache::Const/C__log_> )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:
use Apache::Const -compile => qw(LOG_INFO); $s->loglevel(Apache::LOG_INFO);
nextThe next server record in the list (if there are vhosts)
$s_next = $s->next();
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$s_next
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )For example the following code traverses all the servers, starting from the base server and continuing to vhost servers, counting all available vhosts:
use Apache::ServerRec ();
use Apache::ServerUtil ();
my $server = Apache->server;
my $vhosts = 0;
for (my $s = $server->next; $s; $s = $s->next) {
$vhosts++;
}
print "There are $vhosts virtual hosts";
pathGet/set pathname for the ServerPath setting
$path = $s->path(); $prev_path = $s->path($new_path);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_path ( string )$path ( string )If $new_path is passed, returns the setting before the change.
portGet/set the port value
$port = $s->port(); $prev_port = $s->port($new_port);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_port ( integer )Note the limited functionality under threaded MPMs.
META: I don't think one should be allowed to change port number after the server has started.
$port ( integer )If $new_port is passed returns the setting before the change.
processThe process this server is running in
$proc = $s->process();
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$proc
( Apache::Process object|docs::2.0::api::Apache::Process )
server_adminGet/set the ServerAdmin value
$server_admin = $s->server_admin(); $prev_server_admin = $s->server_admin($new_server_admin);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_server_admin ( string )ServerAdmin value.
$server_admin ( string )ServerAdmin value.
If $new_server_admin is passed, returns the setting before the
change.
server_hostnameGet/set the ServerName value
$server_hostname = $s->server_hostname(); $prev_server_hostname = $s->server_hostname($new_server_hostname);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_server_hostname ( string )ServerName value
$server_hostname ( string )ServerName value
If $new_server_hostname is passed, returns the setting before the
change.
timeoutGet/set the timeout (TimeOut) (in microsecs), which Apache will
wait for before it gives up doing something
$timeout = $s->timeout(); $prev_timeout = $s->timeout($new_timeout);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_timeout ( integer )$timeout ( integer )If $new_timeout is passed, returns the setting before the change.
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|docs::2.0::user::handlers::server/C_PerlChildInitHandler_>).
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.
The affected accessor methods are marked as such in their respective documentation entries.
Apache::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.
addrsGet the addrs value
$addrs = $s->addrs();
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$addrs
( Apache::ServerAddr|docs::2.0::api::Apache::ServerAddr )META: this methods returns a vhost-specific Apache::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_defaultsGet the lookup_defaults value. MIME type info, etc., before we start checking per-directory info.
$lookup_defaults = $s->lookup_defaults();
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$lookup_defaults
( Apache::ConfVector|docs::2.0::api::Apache::ConfVector )
module_configGet config vector containing pointers to modules' per-server config structures.
$module_config = $s->module_config();
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$module_config
( Apache::ConfVector|docs::2.0::api::Apache::ConfVector )
namesGet/set the value(s) for the ServerAlias setting
$names = $s->names(); $prev_names = $s->names($new_names);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_names
( APR::ArrayHeader|docs::2.0::api::APR::ArrayHeader )$names
( APR::ArrayHeader|docs::2.0::api::APR::ArrayHeader )If $new_names is passed, returns the setting before the change.
META: we don't have APR::ArrayHeader yet
wild_namesWildcarded names for ServerAlias servers
$wild_names = $s->wild_names(); $prev_wild_names = $s->wild_names($new_wild_names);
$s
( Apache::ServerRec object|docs::2.0::api::Apache::ServerRec )$new_wild_names
( APR::ArrayHeader|docs::2.0::api::APR::ArrayHeader )$wild_names
( APR::ArrayHeader|docs::2.0::api::APR::ArrayHeader )If $new_wild_names is passed, returns the setting before the
change.
META: we don't have APR::ArrayHeader yet
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.
|
Apache::ServerRec - Perl API for Apache server record accessors |