NAME

CGIBurn CONFIG - Instructions for configuring CGIBurn, a Web-based CD burning package.


CONFIGURING

CGIBurn has two configuration files -- a cache and one or more editable configuration files. The cache file is what is actually used by the running server; it is a Perl module stored in CGIBurn::ConfCache.pm. The configuration files are what you edit to change CGIBurn's behavior. The top-level configuration file is cgiburn.conf; you should never need to edit that directly. It includes other files that actually configure CGIBurn.

When you are first installing CGIBurn, you should use smartinstall to install the initial configuration. After that, you can use checkconf to modify the configuration, unless you move CGIBurn to an entirely different location. In that case, you should just save your configuration, and reinstall it, or look at what smartinstall does and make the changes by hand.

You can test and manipulate configuration files with the checkconf script in the tools subdirectory. Type

   perldoc checkconf

from the tools directory to see full documentation.

The most useful options are -c dirname to tell checkconf to test the configuration in a particular directory, and -i to tell checkconf to install the configuration you specfied with -c into its cache file.

The two files you will actually need to edit are local.conf and devices.conf. Both are normally located in cgi-data/conf.

There are four types of settings groups -- ``Locations'', ``Settings'', ``Driver'', and ``DriverMap''. A group is started by putting the group name at the beginning of a line, followed by a space and the name for this group for the ``Driver'' and ``DriverMap'' groups. Groups that don't have names can appear multiple times; there is no significance to what options appear in what grouping.

Inside a section, the format of each line is

   OptionName: OptionValue

The OptionValue can contain two special values. First, if you put ``$SomeOtherSetting'' somewhere in the string, the value of that setting or location will be substituted. The setting or location must be defined before you can use it as a substitution in an OptionValue. Second, the special string ``/?'' means put exactly one slash there, even if a variable you have substituted contains a slash at the end. For example, whether ``SomeVar'' contains ``dir/'' or just ``dir'', ``$SomeVar/?'' will always evaluate to ``dir/''.


local.conf

The local configuration file specifies a few configuration options specific to your installation of CGIBurn.

It should contain (in this order) your base options, a line instructing it to install as root or as non-root, a line including an installation template file, and then any settings that you want to override the template file.

At least these settings must be set in local.conf for your installation to function properly.

Location MyName
The name you'd like to refer to this software package as. This name will be used in constructing directory names and URLs. cgiburn is a good choice.
Location WebRootDir
The location on your disk of the topmost level of your Webserver configuration. This directory, combined with your setting for MyName, is used as the topmost directory by the installation template you select. Often, it will be something like /home/httpd, /var/home/httpd, /etc/httpd, or /usr/local/etc/httpd. If you don't know this, you'll need to look at your Webserver configuration.
Location WebRootURL
The URL for the root directory on your Web server, normally http://servername/. This directory, combined with your setting for MyName, is used to determine how to construct links between the various components of CGIBurn.
Location BurnPath
A colon-seperated list of directories that contain the tools needed by CGIBurn, in particular the tools discussed in the REQUIREMENTS section, and the directory where CGIBurn's helper programs are installed. The default will probably work for you; if you change the location of CGIBurn's tools using the settings in the
Location Theme
The name of the theme selected. This determines the directory that templates are looked for in.
Setting WebUser
The username or UID that your Webserver runs as. Usually httpd or nobody. You can look at your Webserver configuration if you don't know this.

This setting will be ignored if you aren't installing CGIBurn as root.

Setting WebGroup
The group name or GID that your Webserver runs as. Usually httpd, nobody, nogroup, or daemon. You can look at your Webserver configuration if you don't know this.

If CGIBurn isn't installed as root, this must be a group of which you are a member.

Setting UseSuidHelper
Set to ``yes'' or ``no'', to indicate whether CGIBurn should install a helper program, hipri, which is SUID to root.

This helper program increases the priority of programs which are actively burning to a CD, since if these programs get bogged down by other processes, your writer will get behind, and your CD will be destroyed.

Setting this option requires you to be installing CGIBurn as root. If there is a serious bug in hipri, or if your system has problems with scripts which are SetUID, this could compromise the security of your system. I'm not aware of any serious bugs in hipri, but nobody's perfect. You've been warned.

If you set this option to yes, only members of the group specified in WebGroup will be allowed to execute it. Putting your Web server in its own group will make this option safer, since only programs run by your Web server will be able to execute it.

Install as root or as non-root
CGIBurn needs to handle file ownership and permissions differently if it is not being installed by root. If you want to install it as root, put

  Include root.conf

in the configuration file. Otherwise, put

  Include nonroot.conf

in.

Installation Template Selection
Finally, include the installation template that best describes your configuration. Currently, your only choice is ``manydirs''. When you have chosen it, include a line in locals.conf that says

   Include template.conf

where template.conf is the name of the template configuration file you chose.

manydirs.conf
Different subsystems of CGIBurn will be installed in different subdirectories off of your root Web directory.

Static Web pages and images will be installed in the html/$MyName subdirectory; CGI scripts directly accessible by the user in the cgi-bin/$MyName subdirectory; libraries and tools used by CGIBurn in cgi-lib/$MyName; data files used by CGIBurn in cgi-data/$MyName.

Put

   Include manydirs.conf

in your config file to do this.


devices.conf

To edit the driver configuration files, cd into the CGIBurn root directory, and edit

   cgi-data/conf/devices.conf

This file consists of records describing devices. Here's an example of one:

 Device botcd
   Description: CD in Bottom Drive
   Type: CDRW
   Mode: RW
   Capabilities: 4x 2x 8x
   ReadLocation: /dev/cdrom1
   WriteLocation: 0,1,0
   AutoMountLocation: /auto/cdrom1

The individual devices are described by lines which indicate their attributes. A new device is started by putting the word ``Device'' at the beginning of a line, followed by the device's name. Attributes are set within a device by putting the attribute name, then a colon, then the value or values.

You can name devices whatever you want, but names cannot contain spaces. These names are used only internally to the CGI scripts, so it doesn't much matter what you pick, but it should be something that makes sense.

The settings that are recognized are as follows:

Description
A brief description of the device. This description is what will be displayed in menus and other informational screens, so it should be something that the person using the software will understand.
Type
What kind of device it is. Choices are:

   CD      - Plain CD reader
   MusicCD - CD with music on it (NOT YET WORKING)
   CDRW    - CD burner which supports CDRWs.
   CDR     - CD burner
   dir     - A directory to copy files to or from
   raw     - A file or character-special device file 
             to copy entire CDs from or to.
Location
How the OS accesses the device. The following devices should use the following types of settings:

   CD      - Character-special device for CD (/dev/cdrom)
   MusicCD - Same as CD
   CDRW    - [ See ReadLocation, WriteLocation ]
   CDR     - [ See ReadLocation, WriteLocation ]
   dir     - Path to directory (make sure permissions allow 
             Web user to read and write)
   raw     - Path to file or character-special device (make 
             sure permissions allow Web user to read and 
             write)
ReadLocation
The location that should be used to read from, if different from the location that should be used to write to. Generally used for CDRW and CDR devices.

   CDRW     - Character-special device for CD (/dev/cdrom1)
   CDR      - Same as CDRW
WriteLocation
The location that should be used to write to, if different from the location that should be used to read from. Generally used for CDRW and CDR devices:

   CDRW    - Comma-separated triplet of SCSI-bus,SCSI-target,
             SCSI-lun.  For example, if your CDR is on your 
             first SCSI card, its SCSI ID is 4, and it doesn't 
             have any special LUNs, you would use 0,4,0.  See 
             the manpage for cdrecord for more information on 
             this parameter; it is passed directly to cdrecord.  
             Note specifically that under Linux, IDE CDRW 
             devices are treated as SCSI devices with the 
             "ide-scsi" driver.
   CDR     - Same as CDRW.
MountLocation
The place where this device should be mounted in order to copy files from it. It will be mounted before use, then unmounted after use. DUE TO A BUG, IT IS NOT CURRENTLY UNMOUNTED AFTER USE.
AutoMountLocation
The place where we can expect this device to be mounted. This can either be a location under the control of the automounter, or can just be a place where it is always mounted.
Mode
``read'', ``write'', or ``RW'', for devices which are Read-Only, Write-Only, and Read+Write, respectively.
Capabilities
Special capabilities or settings for this device. Currently, not many are recognized.

   CD      - None.
   MusicCD - None.
   CDRW    - Burning speeds should be included here, simply 
             written as "2x", "4x", etc.  The first speed you 
             specify will be the default; other speeds are 
             available from the Advanced Settings option.
   CDR     - Same as CDRW.
   dir     - None.
   raw     - None.
LockDevice
Normally, when CGIBurn locks a device (to prevent two users from using the same device at the same time), it creates a lockfile based on the device's name. Sometimes, though, multiple devices really refer to the same physical device, particularly with MusicCD and a standard data CD/CDR/CDRW device.

In that case, use LockDevice to indicate what device should be locked instead of this one.


Advanced Options

These options are normally set either in your installation template file, or in the file defaults.conf. To override these settings, include a line in the appropriate section (``Locations'' or ``Settings'') after the line including the template (otherwise the template will override your settings).

Items in this section preceded with the word ``Setting'' should appear in a ``Settings'' group; items preceded with the word ``Location'' should appear in a ``Locations'' group.

Setting PercentBlocks
The number of blocks that should be used to draw the percent bar displayed while a CD is burning.
Setting ReadableOwner
The username or UID that should own files CGIBurn installs which should be readable, but not writable, by the Webserver. By default, it is set to 0, which causes the root user to own these files. That is probably what you want; having the user that the Webserver runs as could subvert the security of your system.

This setting is ignored if CGIBurn isn't installed as root.

Setting ReadableGroup
The group name or GID that should be the group-owner of files CGIBurn installs which should be readable, but not writable, by the Webserver.

If CGIBurn isn't installed as root, this must be a group of which you are a member.

Setting ReadablePerms
The permissions that files CGIBurn installes which should be readable, but not writable, by the Webserver. To specify this value in octal, make sure that it begins with a 0.
Setting WritableOwner
The username or UID that should own files CGIBurn installs which should be both readable and writable by the Webserver.

This setting is ignored if CGIBurn isn't installed as root.

Setting WritableGroup
The group name or GID that should be the group-owner of files CGIBurn installs which should be both readable and writable by the Webserver.

If CGIBurn isn't installed as root, this must be a group of which you are a member.

Setting WritablePerms
The permissions that files CGIBurn installes which should be both readable and writable by the Webserver. To specify this value in octal, make sure that it begins with a 0.
Location HTMLDir
The directory that contains static HTML pages used by CGIBurn.

Your Webserver must recognize this directory as a directory that it serves, and the location here must correspond to the location in HTMLURL.

Location JobDir
The directory where CGIBurn should store data about jobs which are currently in progress.

This directory needs to be writable by processes started by your Webserver, it must recognize this directory as one that it serves, and the location here must correspond to the location in JobURL.

Location ImageDir
The directory that contains graphic images referenced in Web pages it produces.

Your Webserver must recognize this directory as a directory that it serves, and the location here must correspond to the location in ImageURL.

Location CGIDir
The directory that contains the CGI scripts that are used by CGIBurn.

Your Webserver must recognize this directory as executable, and the URL configured in CGIURL must correspond to this directory.

Location LibDir
The directory that contains libraries and tools used by the CGI scripts and helper scripts that make up CGIBurn.
Location LibLib
The directory that contains libraries used by the CGI scripts and helper scripts that make up CGIBurn.
Location BinDir
The directory that contains helper scripts used by the CGI scripts and helper scripts that make up CGIBurn.
Location DataDir
The directory that contains data used by CGIBurn, including its configuration files.
Location LockDir
The directory that contains locks on devices used by CGIBurn.

This directory needs to be writable by processes started by your Webserver.

Location HTMLURL
The base URL for static Web pages served by your Webserver.

This URL should correspond to the directory in HTMLDir.

Location JobURL
The base URL for jobs created by CGIBurn.

This URL should correspond to the directory in JobDir.

Location CGIURL
The base URL for CGI scripts on your system.

This URL should correspond to the directory in CGIDir.

Location NewBurnURL
The URL that CGIBurn should link to for starting a new burn.
Location ImageURL
The base URL for images owned by CGIBurn.

This URL should correspond to the directory in ImageDir.

Location FullBlockURL
The URL for the ``full block'' image used by CGIBurn when displaying a progress meter.
Location NoBlockUrl
The URL for the ``empty block'' image used by CGIBurn when displaying a progress meter.
Location CancelBlockURL
The URL for a special block used by CGIBurn when displaying a progress meter if the job is cancelled or fails.
Location ToolDir
The directory where tools useful for the administrator of CGIBurn should be installed.
Location HTMLDocDir
The directory where the HTML documentation for CGIBurn should be copied to, if InstallHTMLDoc is set to ``yes''.
Location TextDocDir
The directory where the text documentation for CGIBurn should be copied to, if InstallTextDoc is set to ``yes''.
Location IndexFileName
Then name of your Webserver's index file, the file that is displayed if just a directory is given in a URL.
Setting InstallHTMLDoc
Whether or not to install the HTML documentation.
Setting InstallTextDoc
Whether or not to install the text documentation.
Location TemplateDir
Location of Web page templates.
Location ConfDir
The directory where configuration files should be found.


SEE ALSO

README, checkconf, smartinstall, CGIBurn::Conf, CGIBurn::ConfParse.


RCS VERSION

 $Id: CONFIG.pod,v 402.1 2001/02/05 11:43:37 sgifford Exp $