Installation Notes


CommPort is written entirely in Perl, and expects to operate in a Unix/HTTPd/MySQL environment. It has been tested with Apache, but should work with any Web server which supports CGI-by-suffix.

The following Perl modules are required for CommPort to operate fully. Installing in the order given is recommended.

In addition, CommPort relies on:

Directory Layout

The system is designed to fully exist in a Unix users home directory. It is advised a Unix user account be set up solely for the purpose of containing and maintaining the system, and all files and directories should be owned by this user.

Some paths need to be set in the ~cpuser/common/ file when first installing. Most of the paths can be changed to be different than the following if needed.

~cpuser/   - Root Directory of CommPort
auth/  - Storage area for HTTPd authentication files.
cached/  - Storage for parced imported channels.
common/  - Libraries for CGI and support scripts.
cron/  - Directory for crontab scripts.
fetched/  - Storage for raw imported channel data.
imgs/  - Storage for image scanning and caching..
help/  - Help files for context-sensitive help system.
htdocs/  - Web server Document Root
cimgs/  - Cached images from external channels.
cp/  - Registered user's Portal area.
admin/ - Administrator's area.
exit/  - Trick directory used to cancel authentication.
gifs/  - General site images.
uimgs/  - Uploaded images for all channel types.

Database Tables

Several database tables must be created and partitially populated before the system will run. The datainit.txt file can be fed directly to MySQL to do the needed setup.

The system defaults to using the database commport on localhost. As with the paths above, this and the access account un/pw can be configured in the ~cpuser/common/ file.

Hard Paths

There are hard-coded paths in several files which must be modified for the target installation. These are located in:

common/ Most paths, usernames, etc. are defined here.
cron/fetch Needs path to set. Crontab'ed scripts can't use relative paths.
htdocs/index.cgi Needs path to set. Needed because index.cgi and cp/index.cgi are the same file (hardlinked), so relative paths can't work well.
htdocs/cp/.htaccess Needs path to AuthUserFile set, and possibly ErrorDocument 401
htdocs/cp/admin/.htaccess Needs path to AuthUserFile set, and possibly ErrorDocument 401