The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Apache::Storage - Storing data in Apache.

SYNOPSIS

  use Apache::Storage;

DESCRIPTION

Ever wanted to store information in Apache so the additional requests could gain access to it?

For example, you create an object which is fairly expensive and you don't want to have to recreate each time, or say you just have some information you are storing in a reference that you want requests that follow you to see.

This module is for you.

It has three functions described below. They allow you to store and retrieve information from the Apache process. The functions are fairly simple and should make it pretty easy for you to do so without to much hassle.

All of this works with subrequests, so unlike pnotes, you don't need to worry about loosing data if your request is subrequested by an outside Apache module.

You can also use the ApacheStorage directive inside of Apache to prime data into the Apache::Storage.

FUNCTIONS

Note

Keep in mind that data is only stored on the Apache process itself. Different child processes all have their own storage. Don't assume you will get the same Apache child process when reconnecting.

Make sure you put a "PerlModule Apache::Storage" in your httpd.conf file. Apache make core if you do not do this.

set_storage

Set functions can be called in two ways. They can be called with a key and a reference. The reference will then be available by calling it through a get function. You can also pass in hash reference. The contents of this hash will be mapped into storage based on it original key pair. Nothing is returned by either of these functions

get_storage

Get functions can be calling in two ways. They can either be called with a single key, where they will return a single hash

get_storage_dump

This gives you a hash of the entire contents of what is being stored currently.

Apache Directives

ApacheStore

Takes two arguments, a key and a value. The value is evaled.

ApacheStorageInit

Takes no values, and only needs to be used if you don't have at least one ApacheStore call.

Example

httpd.conf

<VirtualHost 10.0.2.25:80>

    ServerAdmin root@tangent.org

    DocumentRoot /usr/local/apache/htdocs

    ServerName slash.tangent.org

    ErrorLog logs/error_log

    CustomLog logs/access_log common

    ApacheStoreINIT

</VirtualHost>

<VirtualHost 10.0.2.25:80>

    ServerAdmin root@tangent.org

    DocumentRoot /usr/local/apache/htdocs

    ServerName slash2.tangent.org

    ErrorLog logs/error_log

    CustomLog logs/access_log common

    ApacheStore foo "[qw(skdjf slkdjf lskdjf)]"

</VirtualHost>

LICENSE

See the file LICENSE that this comes with.

SEE ALSO

perl(3). mod_perl(3).

HOME

http://tangent.org/Apache-Storage/

Author

Brian Aker, brian@tangent.org

Seattle, WA.