* Installing DAD
1. Database setup
- Create a database. The recommended name for your database is 'dad'.
- Edit config.pm and change $DBI_DATASOURCE, $DBI_USER, and
$DBI_PASSWORD to correspond to the location and authorization scheme
for the database you've created.
- Apply the SQL commands in 'schema' to your database.
2. Perl module setup
- Copy DAD's modules (auth.pm, config.pm, private.pm, public.pm, and
report.pm) to a subdirectory called "DAD" somewhere in your Perl
include path. For instance, If your Perl include path includes
"/usr/lib/perl5/site_perl", you could put the modules in
"/usr/lib/perl5/site_perl/DAD".
You can get a list of directories in your Perl include path by running
"perl -V" and looking at the list of directories it tells you are in
"@INC".
Make sure you have the modules HTML::Entities and "URI::Escape"
installed. HTML::Entities is in the HTML::Parser module. URI::Escape
is in the libwww-perl module.
3. Web server setup
- Configure DAD::public (ad delivery) in your httpd.conf with
something like:
SetHandler perl-script
PerlHandler DAD::public
- Configure DAD::private (administrative interface), preferably on a
server that is not publically accessible with something like:
SetHandler perl-script
PerlHandler DAD::private
- Configure DAD::report (reporting to clients) with something like:
SetHandler perl-script
AuthName "DAD Reporting"
AuthType Basic
require valid-user
PerlAuthenHandler DAD::auth
PerlHandler DAD::report
- Edit $TARGET_FRAME in config.pm to change the name of the frame that
ad clickthroughs will appear in, if desired.
- Edit $INTERNAL_IP in config.pm to be regular expression that matches
IP addresses you don't want to count for ad impressions or
clickthroughs. Because this is a regular expression, don't forget to
backslash-escape periods.
- Edit $REDIRECT_FATAL in config.pm to change the URL that users will
get redirected to if the redirection URL in their ad clickthrough is
missing.
- Edit %FATAL_ADS in config.pm and fatal_ad() in public.pm to set up
the correct failure-mode behavior if DAD can't talk to the database to
handle ads correctly. The keys in %FATAL_ADS are group names or other
tokens whose rule-based behavior you've defined in fatal_ad(). The
values are hashes that have four keys (url, src, height, width) that
describe the clickthrough URL, image source, image height, and image
width of the ad that should be displayed in a given fatal
situation. The sample behavior in %FATAL_ADS and fatal_ad() is
definitely not right for you. You should change it.
4. Auxiliary programs
- If you are going to use bridge.c (a small cgi that can be used with
products that can't do virtual subrequests (e.g. Discussion or chat
CGIs)), edit the #defines for DAD_SERVER, DAD_PORT, and DAD_BASE_URL
as appropriate for your server. Make bridge with 'make bridge' and put
it in a CGI-enabled directory of your web space.
- schedule makeSummaries.pl to be run shortly after midnight every day
- schedule resetRDI.pl to be run sometime in the early morning every
day