=head1 NAME BSE installation guide. =head1 DESCRIPTION Note: The installation process below is badly out of date. =head1 SYSTEM REQUIREMENTS =over 4 =item * perl 5.8.5 or later =item * mysql 3.22. or later =item * GnuPG or PGP 5 or 6 =item * a web host: =over 4 =item * with telnet or ssh access =item * that runs your CGI scripts as your user =item * that runs your CGI scripts with the current working directory set to the directory that contains the CGI script. =back =back You will need at least the following Perl modules installed: =over 4 =item * DBI =item * DBD::mysql =item * Digest::MD5 =item * Apache::Session =item * Storable (and this requires Log::Agent sometimes) =item * HTML::Parser =item * URI::Escape =item * HTML::Entities =item * MIME::Lite =item * JSON =item * Date::Format =item * Data::UUID =back and their dependants. If you use the CPAN shell to install these then the dependants will be installed automatically. All other modules are either supplied or standard with perl. I assume you know how to use a text editor, and have a basic knowledge of how directories work, and know enough perl to be able to edit constants. If you want to use the SecurePayXML payment module you will also need: =over =item * XML::Simple =item * LWP aka libwww-perl =item * Crypt::SSLeay =item * =back You may also want: =over =item * Imager - thumbnail displays - B =item * FLV::Info - parsing metadata from uploaded FLV video. =item * Net::Amazon::S3 - for maintaining content on the Amazon S3 CDN. =item * Captcha::reCAPTCHA - for displaying CAPTCHA's from Google reCAPTCHA. =item * CSS::Inliner - this is strongly desirable if you need the system to send email to the general public. =back =head1 PLANNING You need to know: =over 4 =item * the layout of directories on your web host: where CGI programs go (cgi-bin), where's the root of the document tree (htdocs), and where can you safely keep static data (datapath). The names in parentheses () will be used in this documentation. =item * how you want your site to look, presumably as one or more HTML files and associated style sheets. =item * order processing information: the email address and public key of the user who will be receiving the order emails. The email address and private key of the sender of the order emails (though this can be generated during installation. =back =head1 EXTRACT FILES Telnet or ssh to the web host. Extract the archive into a working directory: mkdir work cd work tar xzf workpath/bse-0.04.tar.gz The directories in the archive are: bse/ Base directory bse/schema Database schema definitions (and some test data) bse/site Laid out site bse/site/htdocs Document root bse/site/cgi-bin CGI programs bse/site/templates Sample page templates bse/site/data Static site data (currently just the stopwords list) bse/site/docs Documentation bse/site/util Utilities If you are running your own host, or have sufficient control over Apache, you may want to extract the archive in it's final directory and simply create a new that uses the extracted directories. If so, skip Copy Files. =head1 COPY FILES Replacing the names as decribed in L # the base documents mkdir htdocs/admin cp -R workpath/site/htdocs htdocs/ # page templates (you will need to modify these) and static data mkdir datadir/templates cp -R workpath/site/templates datadir/templates/ cp -R workpath/site/data datadir/ # cgi cp -R workpath/site/cgi-bin cgi-bin/ =head1 CONFIGURATION Most configuration information is kept in Constants.pm, which is in the cgi-bin/modules directory: vi cgi-bin/modules/Constants.pm =head2 Database $DB should be the name of your mysql database. $UN and $PW should be your mysql login name and password. =head2 Directory structure If your directory structure matches that of the archive, this is simple, set $BASEDIR to point to the site directory. The other variables are set based on that layout. Otherwise, set: =over 4 =item $TMPLDIR to the directory you are keeping document templates in, 'datapath/templates/' if you followed L =item $CONTENTBASE to the directory you are keeping the site document files in, 'htdocs/' if you followed L. =item $IMAGEDIR to the directory that image files are kept in. This should be left as $CONTENTBASE . 'images/' =item $DATADIR to the directory containing F =back B these paths I be kept as absolute directories. They must the directories as seen by the running CGI scripts. =head2 Site name You should set $URLBASE and $SECURLBASE to the URLs used to access your site in normal and SSL (https). If you currently don't have secure access setup, you can use the same non-secure URL for both. B You I set the $SECURLBASE to a secure URL and regenerate the site before accepting orders on the site. =head2 Level defaults This is probably the most complex item to configure. The %LEVEL_DEFAULTS hash describes how your site will look from the administration interface. It has little effect on how the site looks from a user's perspective, except of course, that it sets defaults for some items. Each level of your site needs an entry in the hash, with the top level being 0 to indicate the whole site. This top-level should only have the C keyword defined. Each level except for level 0 should have the following keywords defined: =over 4 =item * C defines how the articles at this level is described when adding new articles. =item * C