1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- $Id$
- Storing private addressbooks and preferences in a database
- ==========================================================
- On sites with many users you might want to store your user data in a
- database instead of in files. This document describes how to configure
- SquirrelMail to do this.
- Methods for storing both personal addressbooks and user preferences in
- a database is included as a part of the distribution.
- Configuring PEAR DB
- -------------------
- For this to work you must have the PEAR classes installed, these are
- part of PHP. Once these are installed you must have sure the directory
- containg them is a part of your PHP include path. See the PHP
- documentation for information on how to do that.
- Under Mandrake Linux the PEAR classes are installed as part of the
- php-devel package and under FreeBSD they are installed as part of
- the mod_php4 or php4 port/package. I'm afraid I have no information on
- other systems at the present time.
- Configuring addressbooks in database
- ------------------------------------
- First you need to create a database and a table to store the data in.
- Create a database user with access to read and write in that table.
- For MySQL you would normally do something like:
- (from the command line)
- # mysqladmin create squirrelmail
- (from the mysql client)
- mysql> GRANT select,insert,update,delete ON squirrelmail.*
- TO squirreluser@localhost IDENTIFIED BY 'sqpassword';
- The table structure should be similar to this (for MySQL):
- CREATE TABLE address (
- owner varchar(128) DEFAULT '' NOT NULL,
- nickname varchar(16) DEFAULT '' NOT NULL,
- firstname varchar(128) DEFAULT '' NOT NULL,
- lastname varchar(128) DEFAULT '' NOT NULL,
- email varchar(128) DEFAULT '' NOT NULL,
- label varchar(255),
- PRIMARY KEY (owner,nickname),
- KEY firstname (firstname,lastname)
- );
- Next, edit your configuration so that the address book DSN (Data Source
- Name) is specified, this can be done using either conf.pl or via the
- administration plugin. The DSN should look something like:
- $addrbook_dsn = 'mysql://squirreluser:sqpassword@localhost/squirrelmail';
- From now on all users' personal addressbooks will be stored in a
- database.
- Configuring preferences in database
- -----------------------------------
- There is no easy way to do this yet. You will have to remove
- functions/prefs.php and replace it with functions/db_prefs.php. Then
- edit the new functions/prefs.php (db_prefs.php) and change the $DSN to
- point to a database you create (can be the same you use for
- addressbooks). Create a table similar to this (for MySQL):
- CREATE TABLE userprefs (
- user varchar(128) DEFAULT '' NOT NULL,
- prefkey varchar(64) DEFAULT '' NOT NULL,
- prefval BLOB DEFAULT '' NOT NULL,
- PRIMARY KEY (user,prefkey)
- );
- Default preferences can be set by altering the $default array in
- prefs.php (db_prefs.php).
|