======================
 Installing Turba 2.3
======================

:Last update:   $Date: 2008-09-05 14:09:08 $
:Revision:      $Revision: 1.10.10.7 $
:Contact:       turba@lists.horde.org

.. contents:: Contents
.. section-numbering::

This document contains instructions for installing the Turba contact manager
on your system.

For information on the capabilities and features of Turba, see the file
README_ in the top-level directory of the Turba distribution.


Obtaining Turba
===============

Turba can be obtained from the Horde website and FTP server, at

   http://www.horde.org/turba/

   ftp://ftp.horde.org/pub/turba/

Or use the mirror closest to you:

   http://www.horde.org/mirrors.php

Bleeding-edge development versions of Turba are available via CVS; see the
file `docs/HACKING`_ in the Horde distribution, or the website
http://www.horde.org/source/, for information on accessing the Horde CVS
repository.


Prerequisites
=============

To function properly, Turba **requires** the following:

1. A working Horde installation.

   Turba runs within the `Horde Application Framework`_, a set of common tools
   for Web applications written in PHP. You must install Horde before
   installing Turba.

   .. Important:: Turba 2.0 requires version 3.0+ of the Horde Framework -
                  earlier versions of Horde will **not** work.

   The Horde Framework can be obtained from the Horde website and FTP server,
   at

      http://www.horde.org/horde/

      ftp://ftp.horde.org/pub/horde/

   Many of Turba's prerequisites are also Horde prerequisites.

   .. Important:: Be sure to have completed all of the steps in the
                  `horde/docs/INSTALL`_ file for the Horde Framework before
                  installing IMP.

   .. _`Horde Application Framework`: http://www.horde.org/horde/

The following are not required, but are strongly recommended:

1. SQL and/or LDAP support in PHP.

   Turba can store its contacts entries in either an SQL or an LDAP database,
   and can query public (read-only) LDAP databases for contacts as well.
   Build PHP with whichever LDAP or SQL drivers you require; see the Horde
   INSTALL_ file for details.

2. The following PEAR packages:
   (See `horde/docs/INSTALL`_ for instructions on installing PEAR packages)

   a. Net_LDAP [OPTIONAL]

      Net_LDAP is required when doing schema checks with LDAP address books.


Installing Turba
================

Turba is written in PHP, and must be installed in a web-accessible directory.
The precise location of this directory will differ from system to
system. Conventionally, Turba is installed directly underneath Horde in the
webserver's document tree.

Since Turba is written in PHP, there is no compilation necessary; simply
expand the distribution where you want it to reside and rename the root
directory of the distribution to whatever you wish to appear in the URL.  For
example, with the Apache webserver's default document root of
``/usr/local/apache/htdocs``, you would type::

   cd /usr/local/apache/htdocs/horde
   tar zxvf /path/to/turba-x.y.z.tar.gz
   mv turba-x.y.z turba

and would then find Turba at the URL::

   http://your-server/horde/turba/


Configuring Turba
=================

1. Configuring Horde for Turba

   a. Register the application

      In ``horde/config/registry.php``, find the ``applications['turba']``
      stanza.  The default settings here should be okay, but you can change
      them if desired.  If you have changed the location of Turba relative to
      Horde, either in the URL, in the filesystem or both, you must update the
      ``fileroot`` and ``webroot`` settings to their correct values.

   b. Optional: Provide Turba access from IMP

      If you wish to have Turba appear in IMP's menubar, edit IMP's
      configuration and select Turba in ``Administration/Configuration/Menu
      Settings``.

2. Creating databases

   The specific steps to create Turba databases depend on which database
   you've chosen to use.

   First, look in ``scripts/sql/`` to see if a script already exists for your
   database type (SQL or LDAP).  If so, you should be able to simply execute
   that script as superuser in your database.  (Note that executing the script
   as the "horde" user will probably fail when granting privileges.)

   If such a script does not exist, you'll need to build your own, using the
   file ``turba.sql`` as a starting point.  If you need assistance in creating
   databases, you may wish to let us know on the Turba mailing list.

3. Configuring Turba.

   To configure Turba, change to the ``config/`` directory of the installed
   distribution, and make copies of all of the configuration ``dist`` files
   without the ``dist`` suffix::

      cd config/
      for foo in *.dist; do cp $foo `basename $foo .dist`; done

   Or on Windows::

      copy *.dist *.

   Documentation on the format and purpose of those files can be found in each
   file.  You may edit these files if you wish to customize Turba's appearance
   and behaviour.  With the exception of the ``sources.php`` file the defaults
   will be correct for most sites.

   You must configure ``sources.php`` to list your data sources (both SQL and
   LDAP if necessary).  This configuration file contains a large number of
   **examples**.  Please remove or comment out those examples that **you don't
   need**.

   A few advanced attribute definitions have been commented out in
   ``config/attributes.php`` by default because they require Horde 3.2 or
   later to be installed. If you have a sufficiently recent Horde version you
   can uncomment those lines in ``attributes.php``.

   You must login to Horde as a Horde Administrator to finish the
   configuration of Turba.  Use the Horde ``Administration`` menu item to get
   to the administration page, and then click on the ``Configuration`` icon to
   get the configuration page.  Select ``Address Book`` from the selection
   list of applications.  Fill in or change any configuration values as
   needed.  When done click on ``Generate Address Book Configuration`` to
   generate the ``conf.php`` file.  If your web server doesn't have write
   permissions to the Turba configuration directory or file, it will not be
   able to write the file.  In this case, go back to ``Configuration`` and
   choose one of the other methods to create the configuration file
   ``turba/config/conf.php``.

   Note for international users: IMP uses GNU gettext to provide local
   translations of text displayed by applications; the translations are found
   in the po/ directory.  If a translation is not yet available for your
   locale (and you wish to create one), see the ``horde/po/README`` file, or
   if you're having trouble using a provided translation, please see the
   `horde/docs/TRANSLATIONS`_ file for instructions.

4. Securing Turba

   Before you can secure IMP, you need a secure Horde installation.  Please
   read the file in `horde/docs/SECURITY`_ for Horde security information
   before proceeding.

   Some of Turba's configuration files contain passwords which local users
   could use to access your database.  It is recommended to ensure that at
   least the Turba configuration files (in ``config/``) are not readable to
   system users.  There are ``.htaccess`` files restricting access to
   directories that do not need to be accessed directly; before relying on
   those, ensure that your webserver supports ``.htaccess`` and is configured
   to use them, and that the files in those directories are in fact
   inaccessible via the browser.

   An additional approach is to make Turba's configuration files owned by the
   user ``root`` and by a group which only the webserver user belongs to, and
   then making them readable only to owner and group.  For example, if your
   webserver runs as ``www.www``, do as follows::

      chown root.www config/*
      chmod 0440 config/*

5. Testing Turba

   To verify that Turba is working correctly, attempt to look up a known
   existing and a known nonexisting entry in each of your data sources, and to
   create and then look up a new entry in each data source which allows users
   to create new entries.

   If appropriate, ensure that Turba appears in the IMP menu bar.


Obtaining Support
=================

If you encounter problems with Turba, help is available!

The Horde Frequently Asked Questions List (FAQ), available on the Web at

  http://www.horde.org/faq/

The Horde Project runs a number of mailing lists, for individual applications
and for issues relating to the project as a whole.  Information, archives, and
subscription information can be found at

  http://www.horde.org/mail/

Lastly, Horde developers, contributors and users may also be found on IRC,
on the channel #horde on the Freenode Network (irc.freenode.net).

Please keep in mind that Turba is free software written by volunteers.  For
information on reasonable support expectations, please read

  http://www.horde.org/support.php

Thanks for using Turba!

The Horde team


.. _README: ?f=README.html
.. _INSTALL:
.. _`horde/docs/INSTALL`: ../../horde/docs/?f=INSTALL.html
.. _`docs/HACKING`: ../../horde/docs/?f=HACKING.html
.. _`horde/docs/PERFORMANCE`: ../../horde/docs/?f=PERFORMANCE.html
.. _`horde/docs/SECURITY`: ../../horde/docs/?f=SECURITY.html
.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/?f=TRANSLATIONS.html
