docs::a...erverRec(3)
okay so bestie, you're reading docs::a...erverRec(3) β User Contributed Perl Documentation β and it's literally the cheat sheet for Apache2::ServerRec. no cap, this is where Apache server record accessors live, and we're gonna vibe through every single one. π
β¨
β¨ NAME β¨
Apache2::ServerRec β Perl API for Apache server record accessors. that's the whole name, and yes it ate. π
πΈ Synopsis πΈ
here's the vibe check in code form, bestie:
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";
π¦ Description π¦
Apache2::ServerRec provides the Perl API for Apache server_rec object. π
Apache2::ServerUtil provides an extra functionality. periodt, that's the whole description.
π API π
Apache2::ServerRec provides the following functions and/or methods: π«Ά
error_fname
Get/set the ErrorLog file value (e.g. logs/error_log) β yes, that exact example is iconic. π₯
$error_fname = $s->error_fname();
$prev_error_fname = $s->error_fname($new_error_fname);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_error_fname(string)- If passed, sets the new value for
ErrorLog - π Note the limited functionality under threaded MPMs.
- If passed, sets the new value for
- ret:
$error_fname(string)- Returns the
ErrorLogvalue setting. - If
$new_error_fnameis passed returns the setting before the change.
- Returns the
- since:
2.0.00
is_virtual
Test whether $s is a virtual host object. vibe check for vhosts π
$is_virtual = $s->is_virtual();
- obj:
$s(Apache2::ServerRec object) - ret:
$is_virtual(boolean)- Returns the is_virtual setting.
- If
$new_is_virtualis passed, returns the setting before the change.
- since:
2.0.00
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. lowkey crucial for keep-alive vibes. π«
$keep_alive = $s->keep_alive();
$prev_keep_alive = $s->keep_alive($new_keep_alive);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_keep_alive(boolean)- If passed, sets the new keep_alive.
- π Note the limited functionality under threaded MPMs.
- ret:
$keep_alive(boolean)- Returns the
KeepAlivesetting. - If
$new_keep_aliveis passed, returns the setting before the change.
- Returns the
- since:
2.0.00
keep_alive_max
Get/set the MaxKeepAliveRequest setting, which specifies the maximum number of requests Apache will serve over a KeepAlive connection. the limit is the limit, bestie. β¨
$keep_alive_max = $s->keep_alive_max();
$prev_keep_alive_max = $s->keep_alive_max($new_keep_alive_max);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_keep_alive_max(integer)- If passed, sets the new keep_alive_max.
- π Note the limited functionality under threaded MPMs.
- ret:
$keep_alive_max(integer)- Returns the keep_alive_max setting.
- If
$new_keep_alive_maxis passed, returns the setting before the change.
- since:
2.0.00
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. microsecs is the unit, periodt. π
$keep_alive_timeout = $s->keep_alive_timeout();
$prev_keep_alive_timeout = $s->keep_alive_timeout($new_timeout);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_keep_alive_timeout(integer)- The expected value is in microsecs.
- If passed, sets the new
KeepAlivetimeout. - π Note the limited functionality under threaded MPMs.
- ret:
$keep_alive_timeout(integer)- Returns the
KeepAlivetimeout value (in microsecs). - If
$new_timeoutis passed, returns the setting before the change.
- Returns the
- since:
2.0.00
limit_req_fields
Get/set limit on number of request header fields. header count protection, slay. π
$limit_req_fields = $s->limit_req_fields();
$prev_limit_req_fields = $s->limit_req_fields($new_limit_req_fields);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_limit_req_fields(integer)- If passed, sets the new request headers number limit.
- π Note the limited functionality under threaded MPMs.
- ret:
$limit_req_fields(integer)- Returns the request headers number limit.
- If
$new_limit_req_fieldsis passed, returns the setting before the change.
- since:
2.0.00
limit_req_fieldsize
Get/set limit on size of any request header field. size matters, but only for header fields. π
$limit_req_fieldsize = $s->limit_req_fieldsize();
$prev_limit = $s->limit_req_fieldsize($new_limit);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_limit_req_fieldsize(integer)- If passed, sets the new request header size limit.
- π Note the limited functionality under threaded MPMs.
- ret:
$limit_req_fieldsize(integer)- Returns the request header size limit.
- If
$new_limitis passed, returns the setting before the change.
- since:
2.0.00
limit_req_line
Get/set limit on size of the HTTP request line. keep that request line cute and short. β¨
$limit_req_line = $s->limit_req_line();
$prev_limit_req_line = $s->limit_req_line($new_limit_req_line);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_limit_req_line(integer)- If passed, sets the new request line limit value.
- π Note the limited functionality under threaded MPMs.
- ret:
$limit_req_line(integer)- Returns the request line limit value
- If
$new_limit_req_lineis passed, returns the setting before the change.
- since:
2.0.00
loglevel
Get/set the LogLevel directive value. logging supremacy. π
$loglevel = $s->loglevel();
$prev_loglevel = $s->loglevel($new_loglevel);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_loglevel(Apache2::Const :log constant)- If passed, sets a new
LogLevelvalue - π Note the limited functionality under threaded MPMs.
- If passed, sets a new
- ret:
$loglevel(Apache2::Const :log constant)- Returns the
LogLevelvalue as a constant. - If
$new_loglevelis passed, returns the setting before the change.
- Returns the
- since:
2.0.00
For example, to set the LogLevel value to 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). linked list energy, but make it Apache. π
$s_next = $s->next();
- obj:
$s(Apache2::ServerRec object) - ret:
$s_next(Apache2::ServerRec object) - since:
2.0.00
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. paths are personal. π
$path = $s->path();
$prev_path = $s->path($new_path);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_path(string)- If passed, sets the new path.
- π Note the limited functionality under threaded MPMs.
- ret:
$path(string)- Returns the path setting.
- If
$new_pathis passed, returns the setting before the change.
- since:
2.0.00
port
Get/set the port value. port check, but for servers. π₯
$port = $s->port();
$prev_port = $s->port($new_port);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_port(integer)- If passed, sets the new port.
- π 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.
- ret:
$port(integer)- Returns the port setting.
- If
$new_portis passed returns the setting before the change.
- since:
2.0.00
process
The process this server is running in. know your process, bestie. π¦
$proc = $s->process();
- obj:
$s(Apache2::ServerRec object) - ret:
$proc(Apache2::Process object) - since:
2.0.00
server_admin
Get/set the ServerAdmin value. who runs this server? the admin, obvi. π
$server_admin = $s->server_admin();
$prev_server_admin = $s->server_admin($new_server_admin);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_server_admin(string)- If passed, sets the new
ServerAdminvalue. - π Note the limited functionality under threaded MPMs.
- If passed, sets the new
- ret:
$server_admin(string)- Returns the
ServerAdminvalue. - If
$new_server_adminis passed, returns the setting before the change.
- Returns the
- since:
2.0.00
server_hostname
Get/set the ServerName value. hostname reveal. β¨
$server_hostname = $s->server_hostname();
$prev_server_hostname = $s->server_hostname($new_server_hostname);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_server_hostname(string)- If passed, sets the
ServerNamevalue - π Note the limited functionality under threaded MPMs.
- If passed, sets the
- ret:
$server_hostname(string)- Returns the
ServerNamevalue - If
$new_server_hostnameis passed, returns the setting before the change.
- Returns the
- since:
2.0.00
timeout
Get/set the timeout (TimeOut) (in microsecs), which Apache will wait for before it gives up doing something. patience is a virtue, but only for so many microsecs. π
$timeout = $s->timeout();
$prev_timeout = $s->timeout($new_timeout);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_timeout(integer)- If passed, sets the new timeout (the value should be in microseconds).
- π Note the limited functionality under threaded MPMs.
- ret:
$timeout(integer)- Returns the timeout setting in microseconds.
- If
$new_timeoutis passed, returns the setting before the change.
- since:
2.0.00
Let us repeat again: the timeout values is microseconds. For example to set the timeout to 20 secs:
$s->timeout(20_000_000);
π Notes π
π§΅ Limited Functionality under Threaded MPMs π§΅
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. π
The affected accessor methods are marked as such in their respective documentation entries. π
π§ Unsupported API π§
okay so real talk bestie: Apache2::ServerRec also gives you an auto-generated Perl interface for a few other methods, and those ones are not tested rn π. That means their API is literally subject to change. Theyβll get finalized later when somebody actually needs them, periodt. If you wanna rely on any of the methods below, pls contact 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 π«Ά. Itβs giving βbeta feature, handle with careβ energy π
.
β¨ addrs β¨
Gets the addrs value, bestie.
$addrs = $s->addrs();
- obj:
$s(Apache2::ServerRec object) - ret:
$addrs(Apache2::ServerAddr) β returns theaddrssetting. - since: subject to change
META: this method returns a vhost-specificApache2::ServerAddrobject, which is not implemented at the moment. See thestruct server_addr_recentry inhttpd-2.0/include/httpd.hfor more information. It seems that most (all?) of the information in that record is available through other APIs π.
πΈ lookup_defaults πΈ
Gets the lookup_defaults value. This is like MIME type info, etc., before we start checking per-directory info π.
$lookup_defaults = $s->lookup_defaults();
- obj:
$s(Apache2::ServerRec object) - ret:
$lookup_defaults(Apache2::ConfVector) β returns thelookup_defaultssetting. - since: subject to change
π¦ module_config π¦
Gets a config vector containing pointers to modulesβ per-server config structures β¨.
$module_config = $s->module_config();
- obj:
$s(Apache2::ServerRec object) - ret:
$module_config(Apache2::ConfVector) β returns themodule_configsetting. - since: subject to change
π
names π
Gets/sets the value(s) for the ServerAlias setting. Very main character of it.
$names = $s->names();
$prev_names = $s->names($new_names);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_names(APR::ArrayHeader) β if passed, sets the new names.- Note the limited functionality under threaded MPMs π.
- ret:
$names(APR::ArrayHeader) β returns thenamessetting.- If
$new_namesis passed, returns the setting before the change.
- If
- since:
2.0.00
META: we donβt have APR::ArrayHeader yet π.
π wild_names π
Wildcarded names for ServerAlias servers. Yup, itβs exactly what it sounds like β¨.
$wild_names = $s->wild_names();
$prev_wild_names = $s->wild_names($new_wild_names);
- obj:
$s(Apache2::ServerRec object) - opt arg1:
$new_wild_names(APR::ArrayHeader) β if passed, sets the newwild_names.- Note the limited functionality under threaded MPMs π.
- ret:
$wild_names(APR::ArrayHeader) β returns thewild_namessetting.- If
$new_wild_namesis passed, returns the setting before the change.
- If
- since:
2.0.00
META: we donβt have APR::ArrayHeader yet π.
π See Also π
mod_perl 2.0 documentation. β go read it, bestie π«Ά.
Β©οΈ 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. Iconic behavior, honestly π.
Signing off from docs::a...erverRec(3) β this page was generated by perl v5.42.3 and dated 2023-10-21. Mwah, bye bestie πβ¨
π¦ where this page comes from
- nixos 26.05: mod_perl 2.0.13
- nixpkgs unstable: mod_perl 2.0.13
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms