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:
- the ImageMagic convert command-line tool.
- the file command-line tool, and it being able to recognize both GIF and JPG format. For the latter, insert the following in your /usr/share/magic (or similar) file:# JPEG images 0 beshort 0xffd8 JPEG image data >6 string JFIF \b, JFIF standard # HSI is Handmade Software's proprietary JPEG encoding scheme 0 string hsi1 JPEG image data, HSI proprietary
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/local.pl 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.
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/local.pl file.
There are hard-coded paths in several files which must be modified for the target installation. These are located in:
common/ local.pl Most paths, usernames, etc. are defined here. cron/ fetch Needs path to common.pl set. Crontab'ed scripts can't use relative paths. htdocs/ index.cgi Needs path to common.pl 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