|Configuration file basics...||
The configuration file for WebCollab is found in [webcollab]/config/config.php and controls many of the program functions.
The file is automatically edited by the web-based setup program, but can also be edited manually with a text editor. The web-based setup program can only alter basic values, and will leave the rest alone.
Parameters are generally defined in the config file like this:
//Lines begining with a double slash ('//') like this line, are comments to help you! define('NAME_OF_PARAMETER_BEING_DEFINED', "some_value" ); //Strings (words) are always quoted with " or ' as above, but numbers can be unquoted... define('MY_NUMBER', 1 ); define('A_STRING', "quote_me_please" );
Allowing Web-Based Setup
//Allow web-based the setup program to alter this file (values are "N", or "Y"). //Defaults to "N" (not allowed) after the first successful web install. //** For security: change this to "N" ** $WEB_CONFIG = "Y";
To allow the web-based setup program to function this must be manually set to "Y". This file is shipped with the value "Y" to allow initial installation. After the first install, the config file is saved with the value "N".
To later edit, or change the setup with the web-based setup program, this must be manually changed to "Y".
Base Directory Path
define('BASE_URL', "" );
The domain and path to the WebCollab directory. This does not included the WebCollab directory itself. For instance the site address:
would be specified in the config file as:
define('BASE_URL', "http://www.foobar.com/webcollab/" );
Note that the address must end with a forward slash ('/').
define('DATABASE_NAME', "your_db_name" ); define('DATABASE_USER', "your_db_user" ); define('DATABASE_PASSWORD', "your_password" );
Database name, user account and account password for the selected database. The selected user must have read & write privileges on the database.
//Database type (valid options are "mysql", "postgresql", "mysql_innodb" and "mysqli") define('DATABASE_TYPE', "mysql" );
MySQL and PostgreSQL databases are supported. The 'mysql' type uses ISAM backend, while the 'mysql_innodb' uses the INNODB backend. The 'mysqli' type uses the mysqli extension in PHP and the INNODB backend
Transactions are used for INSERT and UPDATE on the 'postgresql', 'mysql_innodb' and 'mysqli' types.
All the databases store the data in UTF-8 format. For the non-UTF-8 version of WebCollab, the database client driver is used to convert on-the-fly between UTF-8 and the character set in use.
define('DATABASE_HOST', "localhost" );
This will generally be set as 'localhost', however remote databases over TCP/IP connections can be specified by domain or IP address.
//upload to what directory ? define('FILE_BASE', "/var/www/html/webcollab/files/filebase" );
The upload directory can be any directory on this system that is writable and readable by the webserver. WebCollab always checks this directory is suitable before accepting uploads.
The directory here is the full path from the operating system root, not the webserver root directory as is usual for serving web pages.
For security it is preferable to have this directory outside the webserver root directory. WebCollab will not accept known executable files for upload, and changes the file permissions to 'not executable' (*nix-based systems).
Maximum File Size
//max uploaded file size in bytes (2 Mb is the default) define('FILE_MAXSIZE', 2000000 );
This sets the maximum size file that can be uploaded and will be enforced by WebCollab. The web browser is instructed by HTML code to refuse larger file uploads, and should this be ignored (or bypassed), WebCollab will delete the file after upload.
PHP and Apache settings will, and can override the maximum file size set here. See the FAQ for more detail.
//number of file upload boxes to show define('NUM_FILE_UPLOADS', 3 );
The default number of file upload boxes to show on the upload screen. Defaults to '3'.
//downloaded files to be 'inline' or 'attachment' define('FILE_DOWNLOAD', 'inline' );
Files can be downloaded as 'inline' or 'attachment'.
For 'inline' the web browser should try and display the file, or attempt to find a handler for the file type. If neither action is possible, the browser should ask the user.
For 'attachment', the web browser should prompt the user to save the file.
define('LOCALE', "en" );
Language strings to be used. The available languages are listed in the configuration file.
For standard version of WebCollab, the character set (ISO-8859-1, KOI8-R, etc) is set in the appropriate language file. Characters outside this selected character set will not work. Users cannot select their own languages.
For the UTF-8 version, all languages use UTF-8. The base language is set in the config file; users can select their own language of choice in the user edit screens.
//timezone offset from GMT/UTC (hours) define('TZ', 0 );
Timezone to be used in the database and on-screen times. Can be positive or negative in hours and decimal hours.
//enable email to send messages? (Values are "Y" or "N"). // default is "Y". define('USE_EMAIL', "Y" );
The use of email is recommended.
//location of SMTP server (IP address or FQDN) define('SMTP_HOST', "localhost" );
This is a system specific setting for the SMTP server address. Generally, the default of 'localhost' will suffice.
Mail Transport Driver
//mail transport (SMTP for standard mailserver, or PHPMAIL for PHP mail() ) define('MAIL_TRANSPORT', "SMTP" );
Early versions of WebCollab used the PHP mail() function, however this function sometimes worked and sometimes didn't. In order to give more reliable performance, WebCollab now has a purpose written mail user agent compliant with RFC 2821, that also supports pipelining, smtp auth and provides full mail problem debugging.
For almost all users the standard WebCollab mailer (SMTP) has been reported to work. For some, system configuration limitations prevent direct access to a SMTP server, PHPMAIL using PHP mail() may work in these cases.
//SMTP port (leave as 25 for ordinary mailservers) define('SMTP_PORT', 25 );
Leave as 25, unless otherwise required.
//use smtp auth? ('Y' or 'N') define('SMTP_AUTH', "N" ); //if using SMTP_AUTH give username & password define('MAIL_USER', "" ); define('MAIL_PASSWORD', "" );
Some mail servers require SMTP AUTH before accepting mail for delivery. For these systems, change 'SMTP_AUTH' to "Y", then enter the username and password as indicated above.
WebCollab supports PLAIN AUTH, AUTH LOGIN and AUTH CRAM MD5. WebCollab queries the mail server for acceptable authorisation methods, then if permitted uses one of the above. WebCollab prefers PLAIN AUTH over AUTH LOGIN and then AUTH CRAM MD5, when given a choice of authorisations.
Note: SMTP AUTH is not available with PHP mail().
//use TLS encryption? (requires PHP 5.1+) define('TLS', 'N' );
For servers that use TLS encryption, change 'TLS' to "Y", noting that PHP 5.1+ is required. WebCollab will query the mailserver capabilities and will record an error if the mail server cannot provide TLS.
Style and Appearance
//Style sheets (CSS) Note: Setup always uses 'default.css' stylesheet for CSS_MAIN. (Place your CSS into /css directory) define('CSS_MAIN', 'default.css' ); define('CSS_CALENDAR', 'calendar.css' ); define('CSS_PRINT', 'print.css' );
All parts of WebCollab can be controlled by cascading style sheets (CSS). These can be manipulated by a web developer to change the appearance and styling.
//custom image to replace the webcollab banner on splash page (base directory is [webcollab]/images) define('SITE_IMG', "webcollab.png" );
Used for adding a custom splash image to the login screen.
//number of days that new or updated tasks should be highlighted as 'New' or 'Updated' define('NEW_TIME', 14 );
New or updated tasks are highlighted to each user as 'New' or 'Updated' until they have viewed them. After a certain period (default is 14 days) without viewing the task, the highlighting is removed.
Start Day of Week
//Start day of week on calendar (Sun = 0, Mon = 1, Tue = 2, Wed = 3, etc) define('START_DAY', 0 );
Different countries have different conventions for the first day of the calendar week.
//Use VEVENT for iCalendar instead of VTODO - works for Google Calendar and others (values are "N", or "Y") define('VEVENT', "N");
The iCalendar functions uses the VTODO (ToDo) verb for marking the tasks. This is the appropriate method for task orientated events. Some iCalendar clients (notably Google Calendar) do not recognise VTODO, so VEVENT can be used instead.
//enable autodiscovery of rss feeds by web browser define('RSS_AUTODISCOVERY', 'N' );
Enable autodiscovery of RSS feeds.
Note: RSS feeds need to enabled by allowing external web authorisation in Apache. See the FAQ.
//session timeout in hours define('SESSION_TIMEOUT', 1 );
Length of session inactivity allowed
//security token timeout for forms (in minutes) define('TOKEN_TIMEOUT', 5 );
Each submitted form has a security token associated with it. This parameter sets the expiry time of the token.
Web Server Login
//Use external webserver authorisation to login (values are "N", or "Y") define('WEB_AUTH', "N" );
This option allows the use of webserver authorisation, rather than the normal WebCollab login screen. See the FAQ.
//Show passwords in user edit screens as plain text or hidden ('****') (values are "text", or "password") define('PASS_STYLE', "text" );
Show passwords in user edit screens as plain text or hidden ('****').
Guest User Restrictions
//Stop GUEST users from changing their login details or posting in the forums (values are "N", or "Y") define('GUEST_LOCKED', "N" );
Stop GUEST users from changing their login details or posting in the forums.
//If an error occurs, who do you want the error to be mailed to ? define('EMAIL_ERROR', "" ); //show full debugging messages on the screen when errors occur (values are "N", or "Y") define('DEBUG', "N" );
Debugging tools for developers
//Don't show full error message on the screen - just a 'sorry, try again' message (values are "N", or "Y") define('NO_ERROR', "N" );
Use this option to prevent error messages being displayed to users.
//Use to set a prefix to the database table names (Note: Table names in /db directory will need be manually changed to match) define('PRE', "" );
This option may be required where a web provider only makes one database available, and more than one database application is being used.
//Use to enable zlib output compression of web pages (values are "N", or "Y") define('COMPRESS_OUTPUT', 'N' );
This option enables the output to be compressed before sending to the web browser. The web browser then un-compresses the file before displaying it. This option is usually web-safe because only browsers that advertise support for compression will activate the output compression
define('WEBCOLLAB_VERSION', "2.50" ); define('UNICODE_VERSION', "N" );
Defines the version information.
Version number string can be changed. Do not change from, or to unicode without also changing the language files.
The unicode version string is removed in Version 3.00 onwards.