Quick steps:
1. Download and unpack This is a link to part of http://www.flatmtn.com/computer/Linux-HordeImp.html
2. Edit php.ini.
3. Install and configure Horde. This is a link to part of http://www.flatmtn.com/computer/Linux-HordeImp.html
4. Install and configure IMP.
5. Install and configure Turba. This is a link to part of http://www.flatmtn.com/computer/Linux-HordeImp.html
6. Possible problems with Turba.
7. Setup apache so http://your_web_server/webmail/ goes to imp. This is a link to part of http://www.flatmtn.com/computer/Linux-HordeImp.html
8. Change the "Welcome to Horde".
9. Customizing
10. Thoughts.
While I've somewhat decided not to use Horde (jscript, ldap slowness) I do think it is a great package. I'm leaving this up for reference.
Note I am using Red Hat 8.0 with apache 2.0.4 (httpd-*.rpm) and php 4.2.2. I assume you have apache at least minimally configured. I did have trouble with logins (got reason=session, would reload
1) Download and unpack
Get the tar.gz from here: http://www.horde.org/imp/ (I'm using 3.1)
You will also need the Horde Application Framework, which can be found here: http://www.horde.org/horde/ (I'm using 2.1)
For contacts you need Turba (SQL or LDAP). It is here: http://www.horde.org/turba/ (I'm using 1.1)
Note there are RPMs available for RH 6 and 7 at the above site. I am not using those.
And you will need PEAR, which comes with the PHP rpm. The how-to listed at the top has how to update if needed.
For spell checking you will need Ispell or Aspell, which are available from the RH rpms.
Unpacking the files:
gunzip name.tar.gz
tar -xvf name.tar
Don't forget you can remove the tar file (rm *.tar) when you are done or place it elsewhere for backup. And read the README files in the name/docs directory.
2) Edit php.ini
These settings are needed:
file_uploads = On
short_open_tag = On
extension=imap.so
More may be needed, but those are the ones I know of for my setup. Restart apache:
service httpd restart
3) Install and configure Horde
If you unpacked the tar in the /tmp directory, like I did, or elsewhere you now need to move it into the web server directory. Example:
mv /tmp/horde-2.1 /var/www/html/horde
See the INSTALL file in the horde/docs directory for the note about databases.
Cd into the path/horde/config directory and make copies of all the *.dist files without the .dist extension.
Example:
for foo in *.dist; do cp $foo `basename $foo .dist`; done
Now, edit the horde.php file. Here are some of my settings, though not all available are shown:
In the "General Horde Settings" section I set:
$conf'use_ssl' = 1;
but this was after I got a working config with http. This force https.
In the "Horde Authentication" section I set:
$conf['auth']['driver'] = 'imap';
$conf['auth']['params']['dsn'] = '
{localhost:143/imap}
INBOX.';
note the period after INBOX. This is for Courier.
In the "Preference System Settings" section I set:
$conf'prefs''driver' = 'none';
For the first bit of testing. Once things were working I set it to:
$conf'prefs''driver' = 'session';
so I could explore the options that would be available to users. I will use mySQL eventually. (note: session caused a problem with turba, see below)
In the "Mailer" section I set:
$conf'mailer''type' = 'smtp';
$conf'mailer''params' = array('host' => 'localhost');
The reason for this is some mailscanners can only scan smtp sessions. This works nicely with Exim too.
Note: if you are going to use SMTP, make sure the Pear modules Net_Socket and Net_SMTP are installed. Net_Socket, which should be installed first, is newer than what Net_SMTP expects. So to
pear install -n Net_SMTP-version.tgz
Next I edited the registry.php. Here are some of my settings, though not all available are shown:
In the "Handlers" section:
$this->registry'auth''login' = 'imp';
$this->registry'auth''logout' = 'imp';
In the "Application registry" section I uncommented the lines for IMP. I uncommented the lines for turba once it was installed.
There are other files in the config directory that you may need to change.
Now protect those files by setting the owner to root, the group to the web server's group:
chown -R root /var/www/html/horde
chgrp -R apache /var/www/html/horde
and making the config files read only:
chmod 0440 path/horde/config/*
Note: I used 0640 so root could still edit them.
Now test by going to:
http://your_web_server/horde/test.php
Look at what the page says and pay attention to any warnings. I needed the Log module of Pear, as noted by the horde test page. Go here: http://pear.php.net/ and in the search for packages typ
pear install name.tgz
4) Install and configure IMP
If you unpacked the tar in the /tmp directory, like I did, or elsewhere you now need to move it into the web server directory. Example:
mv /tmp/imp-3.1 /var/www/html/horde/imp
Cd into the path/horde/imp/config directory and make copies of all the *.dist files without the .dist extension. Example:
for foo in *.dist; do cp $foo `basename $foo .dist`; done
Now, edit the conf.php file. Here are some of my settings, though not all available are shown:
In the "External Utilities" section I set:
$conf'utils''spellchecker' = 'aspell';
once aspell was installed.
In the "Menu Settings" section I set:
$conf'menu''apps' = array('turba');
after turba was installed.
In the "User Capabilities and Constraints" section I set:
$conf'user''allow_resume_all_in_drafts' = true;
$conf'user''select_sentmail_folder' = true;
In the "Mail Server Settings" section I set:
For testing (which allows you to play with what is needed in servers.php):
$conf'server''server_list' = 'none';
$conf'server''change_server' = true;
$conf'server''change_port' = true;
$conf'server''change_protocol' = true;
$conf'server''change_folders' = true;
For working (because I only have one server):
$conf'server''server_list' = 'hidden';
In the "Mailbox Settings" section:
$conf'mailbox''from_link' = 'compose';
$conf'mailbox''show_attachments' = true;
In the "Message Settings" section:
$conf'msg''append_trailer' = false;
Next, edit the servers.php file or play first with the test settings in conf.php, "Mail Server Settings" show above. Here are some of my settings for Courier, though not all available are shown:
$servers'imap' = array(
'name' => 'IMAP Server',
'server' => 'localhost',
'protocol' => 'imap/notls',
'port' => 143,
'folders' => '',
'namespace' => 'INBOX.',
'maildomain' => 'example.com',
'smtphost' => 'localhost',
'realm' => 'example.com',
'preferred' => ''
);
There are other files in the config directory that you may need to change.
Now protect those files by setting the owner to root, the group to the web server's group:
chown -R root /var/www/html/horde/imp
chgrp -R apache /var/www/html/horde/imp
and making the config files read only:
chmod 0440 path/horde/imp/config/*
Note: I used 0640 so root could still edit them.
Now test by going to:
http://your_web_server/horde/imp/test.php
Note: I never got this page to work with Courier. I believe it is because it uses INBOX without the period. I used the testing configuration specified above to play with what should go in the server sett
http://your_web_server/horde/imp/
5) Install and configure Turba
If you unpacked the tar in the /tmp directory, like I did, or elsewhere you now need to move it into the web server directory. Example:
mv /tmp/turba-1.1 /var/www/html/horde/turba
Cd into the path/horde/imp/config directory and make copies of all the *.dist files without the .dist extension. Example:
for foo in *.dist; do cp $foo `basename $foo .dist`; done
Now, edit the conf.php file. Not much there, eh?
Next, edit the sources.php. I'm only using LDAP on the localhost at the moment with no password and no changing allowed:
$cfgSources'localldap' = array(
'title' => 'Shared Directory',
'type' => 'ldap',
'params' => array(
'server' => 'localhost',
'port' => 389,
'root' => 'dc=example,dc=com,ou=example',
'bind_dn' => '',
'bind_password' => '',
'dn' => array('cn'),
'objectclass' => 'person',
'version' => 3
),
'map' => array(
'__key' => 'dn',
'name' => 'cn',
'email' => 'mail',
'company' => 'o',
'workPhone' => 'telephonenumber'
),
'search' => array(
'name',
'company'
),
'strict' => array(
'dn'
),
'public' => true,
'readonly' => true,
'admin' => array(),
'export' => false
);
The line 'export' does not relate back to the options of letting users import & export address books. What it means is allow it to be browseable.
If you use any types in the 'map' section that are not in attributes.php, you must add them. Example: If I had called 'workPhone' as 'phone' I would have had to edit attributes.php and add somethin
$attributes['phone'] = array(
'type' => 'phone',
'desc' => \_("Phone")
);
Here are some of my additions to attributes.php (note the order they are in this file is the order they appear, not the order they are called in sources.php):
$attributes['poBox'] = array(
'type' => 'multiline',
'desc' => \_("PO Box")
);
$attributes['city'] = array(
'type' => 'text',
'desc' => \_("City")
);
$attributes['state'] = array(
'type' => 'text',
'desc' => \_("State")
);
$attributes['zip'] = array(
'type' => 'text',
'desc' => \_("Zip")
);
$attributes['country'] = array(
'type' => 'text',
'desc' => \_("Country")
);
$attributes['category'] = array(
'type' => 'text',
'desc' => \_("Category")
);
To control what shows for the return results, edit prefs.php in the section "columns to show". For mine, to show company and email from the results returned from localldap:
// columns to be displayed
$_prefs['columns'] = array(
'value' => "localldap\tcompany\temail",
'locked' => false,
'shared' => false,
'type' => 'implicit'
);
The "\t" starts a new field. If you have multiple address sources, list the next one with a "\n". Like:
'value' => "source1\tfield1\tfield2\nsource2\tfield1",
Also, displaying the name field is a given.
Note that there is a different set of controls for fields to search for the address book you get by accessing from the compose window of Imp. These settings are located in imp/config/prefs.php under
There are other files in the config directory that you may need to change.
If you are using imp, go back to it's config directory and edit the conf.php:
In the "Menu Settings" section set:
$conf['menu']['apps'] = array('turba');
Don't forget to uncomment turba in horde/config/registry.php, in the "Application registry" section.
Now protect those files by setting the owner to root, the group to the web server's group:
chown -R root /var/www/html/horde/turba
chgrp -R apache /var/www/html/horde/turba
and making the config files read only:
chmod 0440 path/horde/turba/config/*
Note: I used 0640 when I needed root to edit them.
Now give it a whirl by going to:
http://your_web_server/horde/turba/
6) Possible problems with Turba
If you have problems occasionally or often, check your apache error logs (mine is in /var/log/httpd/error_log). If you show some seg faults, see this bug report (says fixed with latest snapshot at the e
Warning: What follows is from someone who knows just enough to get in and sometimes out of trouble, but not enough to fix things themselves.
My symptom was IE just sat there, the httpd process was hogging the cpu, and there was nothing in the error_log. Yet I was able to use this in a php file to successfully test LDAP via php (ie I saved
<?php
$ds = ldap_connect("ldap://example.com_or_localhost/");
echo "connect result is ".$ds."";
if($ds)
{ $r=ldap_bind($ds); echo "Bind result is ".$r.""; $sr=ldap_search($ds, "dc=example,dc=com,ou=example", "sn=surname_of_a_person_in_database"); e
{ echo "dn is: ". $info[$i]["dn"] ." "; echo "first cn entry is: ". $info[$i]["cn"][0] ." "; echo "first mail entry is: ". $info[$i]["mail"][0
}
echo "Closing connection";
ldap_close($ds);
?>
I was also able to successfully go directly to search.php or browse.php (ie http://your_web_server/horde/turba/seach.php). So I got to playiing with index.php by rem'ing out the line:
header('Location: ' . Horde::applicationUrl($uri, true));
and adding:
echo "uri=".$uri;
Which showed me that the part above was not working correctly. Having exhausted my knowledge of php I changed the section as follows:
...
if ($turba_configured)
{ include_once TURBA_BASE . '/lib/base.php'; // $uri = $prefs->getValue('initial_page'); // if (\!empty($_SERVER['QUERY_STRING']))
{ // $uri .= '?' . $_SERVER['QUERY_STRING']; // }
$uri = "search.php";
header('Location: ' . Horde::applicationUrl($uri, true));
echo "\n";
exit;
...
It is probably something in my setup files somewhere, but until I figure it out this works for me.
Update: When I set $conf'prefs''driver' = 'none'; in horde.php it worked fine, so it must have something to do with session preferences?
I've also updated to the latest CVS of turba (with tag RELENG_1) too. See http://www.horde.org/source/
Another odd thing I've found with turba, and posted to the list (S. Yoder), is the search queries passed. I turned on LDAP logging of connections, operations, and results (level 256) and here is what
bind
search for the requested name using the sources.php base (scope=2)
search for the sources.php filter using the dn of the result from the previous search (scope=0)
unbind
bind
search for the sources.php filter using the sources.php base (scope=2)
same search (scope=0)
a search on each dn returned from above for the sources.php filter (scope=0) That's 2500 searches for my data!
a search for the sources.php filter using the dn of the result returned from the first bind
unbind
Not having gotten any response from the list yet I started trying to read some of the code and figure out what is going on. As far as I can tell som
099\|function search($criteria, $fields, $strict_fields = array(), $match = TURBA_SEARCH_AND)
...
107\| if (count($criteria) > 0)
{ 108| $filter = $glue; ... 144| }
else
{ 145| $filter = '(objectclass=*)'; 146| }
...
If 'filter' is not null then lines 149-151 are used. Shown for reference:
148\| /\* Add source-wide filters, which are _always_ AND-ed. \*/
149\| if (\!empty($this->params['filter']))
{ 150| $filter = '(&' . '(' . $this->params['filter'] . ')' . $filter . ')' 151| }
By rem'ing out line 144 and 145 (and the debuging on lines 163-165), if 'filter' is null, that particular first search fails in the second bind, but the second search does not. The two binds still happen, b
and only one bind happening.
The bad part about this 'solution' is browsing ldap address books no longer works. However, since Turba merely iterates everything at this time, rather than say 25 at a time, allowing folks to browse 2
7) Setup apache so http://your_web_server/webmail/ shows imp
In httpd.conf add (I've also included remapping turba too):
Alias /horde/ /path/horde/
Alias /webmail/ /path/horde/imp/
Alias /contacts/ /path/horde/turba/
1. Still deciding if I need this
2. I think I will have to do a virtual
3. server if so
#DocumentRoot /var/www/horde/
Then in horde/config/registry.php, in the "Application registry" section:
$this->applications['horde'] = array(
'fileroot' => dirname(\__FILE_\_) . '/..',
'webroot' => '',
'initial_page' => 'login.php',
'icon' => '/horde/graphics/home.gif',
'name' => \_("Horde"),
'allow_guests' => true,
'show' => true,
'templates' => dirname(\__FILE_\_) . '/../templates',
'cookie_domain' => $GLOBALS['HTTP_SERVER_VARS']['SERVER_NAME'],
'cookie_path' => '/',
'server_name' => $GLOBALS['HTTP_SERVER_VARS']['SERVER_NAME'],
'server_port' => $GLOBALS['HTTP_SERVER_VARS']['SERVER_PORT']
);
$this->applications['imp'] = array(
'fileroot' => dirname(\__FILE_\_) . '/../imp',
'webroot' => '/webmail',
'icon' => $this->applications['horde']['webroot'] . '/imp/graphics/imp.gif',
'name' => \_("Mail"),
'allow_guests' => false,
'show' => true
);
$this->applications['turba'] = array(
'fileroot' => dirname(\__FILE_\_) . '/../turba',
'webroot' => '/contacts',
'icon' => $this->applications['horde']['webroot'] . '/turba/graphics/turba.gif',
'name' => \_("Addressbook"),
'allow_guests' => false,
'show' => true
);
And finally restart your web server:
service httpd restart
8) Change the "Welcome to Horde"
Believe it or not, but this eluded me and I thought I would have to create a custom en_US language file. Instead it is buried in horde/config/registry.php in the "Application registry" section:
$this->applications['horde'] = array(
'fileroot' => dirname(\__FILE_\_) . '/..',
'webroot' => '/horde',
'initial_page' => 'login.php',
'icon' => '/horde/graphics/home.gif',
'name' => \_("Change Me"),
...
9) Customizing
All I've done so far is to change some colors. For that you need to edit the html.php files. The main one is in horde/config. Colors can be in hex:
#nnnnnn
rgb:
RGB(n,n,n)
or literal:
red
Tip: Do a web search for "html colors" and you'll turn up lots of resources on this.
Tip: If you have changed colors and a reload of the web page does not display them, you may need to clean out your web browser's cache (or just remove the css.* files from it). The method for doin
10) Thoughts
While Horde/Imp/Turba does take more configuration than Squirrelmail, I do rather like it. Yet, if you were new to *nix I'd recommend Squirremail, just because it has a configuration interface and can
However, I do wish that the address book was consistent between accessing it direct from path/turba/ or the "Address book" link in Imp and the "Address Book" link in the Imp compose window.
Option 2
Good day to all.
Below are the steps that were used in installing and configuring my Horde Mail Server.
Horde Mail
Tested using postfix+dovecot/cyrus-imap+mysql+MailScanner on FC5
FC4 Installation Guide (http://wiki.horde.org/FC4InstallationNo ... rrer=HowTo) on wiki.horde.org
In this howto, apache, postfix and dovecot/cyrus-imap installations/configurations are not covered.
So its assumed that its already installed and running on your system.
Horde Pre-Installation
#yum install php-mysql mysql-server php-devel php-mbstring php-xml php-gd php-imap cvs
#pear install --alldeps Net_IMAP Log Mail_Mime Mail Net_SMTP File Date Console_Getopt
Horde Installation
Using CVS:
Open the cvs port 2401 of your firewall.
#cd /var/www/html
#cvs -d :pserver:cvsread@anoncvs.horde.org:/repository login
note: the password is 'horde'
#cvs -d :pserver:cvsread@anoncvs.horde.org:/repository checkout horde
#cd horde
#cvs -d :pserver:cvsread@anoncvs.horde.org:/repository checkout framework imp kronolith mnemo nag turba ingo gollem passwd
#cd framework
#pear channel-discover pear.horde.org
#php install-packages.php
#mkdir -p /var/horde/vfs
#chown -R apache:apache /var/horde
Using the sources(tar.gz) from Horde (http://www.horde.org)(Stable Releases):
Uncompress the downloaded sources.
#tar -xzvf .tar.gz
Rename the folder from horde-3.1.3 to horde
#mv horde-3.1.3 horde
#mv imp-h3-4.1.3 imp
Continue renaming until all folders has been renamed.
Put all other folders to horde(folder).
So now, the horde folder contains the imp folder, ingo, kronolith, etc.
#mv horde /var/www/html/
Configuration
Mysql:
#mysqladmin -u root password 'password'
or
#mysqladmin -u root -h your.host.name password 'password'
Create database:
#cd /var/www/html/horde/scripts/sql
#vi create.mysql.sql
find this:
-- IMPORTANT: Change this password.
PASSWORD('horde')
replace with your password
#mysql -u root -p < create.mysql.sql
enter password:
#mysql -u root -p
enter password:
mysql> grant all privileges on *.* to horde@localhost identified by "horde";
mysql> flush privileges;
mysql> quit;
Creating other tables:
#cd /var/www/html/horde/nag/scripts/sql/
#mysql -u root -p
enter password:
mysql>use horde;
mysql>source nag.sql;
mysql>quit;
Repeat the above-mentioned procedure for turba, mnemo and others.
Horde:
#cd /var/www/html/horde
#for a in . imp kronolith mnemo nag turba ingo gollem passwd;do cd /var/www/html/horde/$a/config;for f in *.dist;do cp $f `basename $f .dist`;done;done
note: character "`" <- left side of number 1 called backtick
#cd /var/www/html
#chown -R apache:apache horde
#chmod -R o-rwx horde
PHP:
#vi /etc/php.ini
edit:
display_errors = On
file_uploads = On
upload_max_filesize = 5M (or your choice)
memory_limit = 128M or more to be able to send large email attachments
Open firefox and run http://localhost/horde/test.php
On the horde applications you can see 'run imp tests'
At the bottom, fill up 'PHP Mail Server Support Test', submit.
In case some /conf.php's are missing, download the attachments, uncompress,
and rename it to conf.php and put to its designated folders.
IMP:
From the result above, put it here
#vi /var/www/html/horde/imp/config/servers.php
'server'=>'localhost or your server ip'
'protocol'=>'imap/notls'
'port'=>'143'
'maildomain'=>'yourdomain.com'
'smtphost' =>'localhost' or your smtp server
More installation:
#pecl install fileinfo
#pecl install memcache
#pear install --alldeps HTTP_Request
#yum install php-mcrypt php-json
#vi /etc/php.ini
add:
extension=fileinfo.so
extension=memcache.so
#pear -d preferred_state=beta install --alldeps Services_Weather
#pear config-get preferred_state
if the result is "stable", proceed below
#pear config-set preferred_state beta
Download libssh2.tar.gz (attached file)
#tar -xzvf libssh2.tar.gz
#cd libssh2
#./configure
#make all install
#service httpd restart
#pecl install ssh2
#pear install Net_Sieve
#yum install php-mhash
#pear install Crypt_CHAP
#pear install Auth_SASL
#service postfix restart;service dovecot restart;service mysqld restart;service httpd restart
On your browser, run http://localhost/horde and login.
Go to Administration > Setup > Horde (horde).
On the General Tab, select on the drop-down text field 'Attempt to auto-detect...'.
Click the Datebase Tab, use MySQL as the backend, username horde, put the horde db password, Unix sockets, db name=horde.
Select the Authentication Tab, authentication backend='Let a Horde application...', select imp.
On the Preference System, use SQL Database, Horde defaults, horde_prefs.
On the DataTree System, use SQL Database, Horde defaults, horde_datatree, horde_datatree_attributes.
For the Groups, use DataTree as the backend.
On the Token System, use SQL-based token storage, Horde defaults, horde_tokens.
For the Mailer, I use the local sendmail binary, /usr/lib/sendmail, -oi.
On the Virtual File Storage, use SQL database, Horde defaults, horde_vfs.
For the Custom Session Handler settings, use MySQL based sessions, Unix sockets, localhost as hostname,
horde as username, put the horde db password, horde as the db name, horde_sessionhandler.
On the Problem Reporting tab, No, user@yourdomain.com, yourdomain.com, root, root password.
On the Menu Setting, use All users and Authenticated users.
Click Generate Horde Configuration.
Test your Horde if it can send and receive mail.
Don't forget to restart apache after you made any changes to the configurations.
Option 3
Horde requires some prerequisite software before you can use it. In addition, there are other software packages which, while
not required, are recommended as without them you will experience very limited functionality. The following helps you to
install the required and recommended software packages on a Fedora Core 4 system.
Apache packages
Horde is a web application, and as such, you need to provide a web server to use it. If you do not already have the Apache web
server installed, you should do so at this time:
yum install httpd
chkconfig httpd on
/etc/init.d/httpd start
PHP Packages
As Horde is a PHP application, it requires that you have PHP installed. In addition to the base php package, Horde and
its applications require several other PHP packages. The following installs the most commonly needed PHP packages.
yum install php php-xml php-imap
PEAR
The Fedora Core PHP package contains a PEAR installation, but it is missing some PEAR modules needed by Horde.
You can install these modules using the following command:
pear install -f Net_IMAP Log Mail_Mime File Date Console_GetoptNote for Fedora Core 5 you should also install the DB package for pear.
pear install -f DBRead the note at: http://pear.php.net/bugs/bug.php?id=5113
If you've faced this problem then you can download a patched file via:
pear install http://www.iptp.net/files/File-1.2.1.tgz
SQL
While a SQL server is not required to run Horde, it is recommended as much of the Horde functionality will be lost without it.
You may run either MySQL or PostgreSQL, but you should not run both!
While you do not need to run the SQL server on the same machine that runs the Horde web applications, that is the most common setup for small sites, and hence the following assumes this type of
MySQL
yum install php-mysql mysql mysql-server
/sbin/chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
(You might need more packages depending your installation.)
OR
PostgreSQL
yum install postgresql-server php-pgsql postgresql-libs mod_auth_pgsql postgresql
/sbin/chkconfig --levels 235 postgresql
/etc/init.d/postgresql start
CVS
The instructions below install Horde and its applications from CVS. In order to use CVS, you will need to have the
cvs package installed in your machine. The following command can be used to install the cvs package.
yum install cvs
Horde
The following commands can be used to install Horde along with the more popular Horde applications, using anonymous
CVS. There are other ways to install Horde and its applications other than CVS. However, this documentation only covers
using CVS for installation.
cd /var/www/html
cvs -d :pserver:cvsread@anoncvs.horde.org:/repository login
Password: horde
cvs -d :pserver:cvsread@anoncvs.horde.org:/repository checkout horde
cd horde
cvs -d :pserver:cvsread@anoncvs.horde.org:/repository checkout framework imp kronolith mnemo nag passwd turba ingo
cd framework
pear channel-discover pear.horde.org
php install-packages.php
mkdir -p /var/horde/vfs
chown -R apache:apache /var/horde
Once all the software is installed, you need to configure it for use with Horde. Below is some information on how to
configure the various software packages. Note that configuration will vary depending on your needs, and the following
is just a basic guide; you may need to adjust your configuration for your needs.
MySQL
Before you can use the MySQL server with Horde, you must setup the SQL server and create the needed database tables.
Create a MySQL account
First, you need to create a SQL user. In the instructions below, replace 'password' with the actual password you want to
set for this account.
mysqladmin -u root password 'password'
mysqladmin -u root -h your.host.name password 'password'
Creating the MySQL Database and Tables
Next, you need to create the database and its tables. First, you must edit the database scripts Horde provides to set the
database password to the password you set in the previous step.
cd /var/www/html/horde/scripts/sql
vi create.mysql.sqlThen change the database password in the file, and save it. Once you have set the password correctly in the script,
you should run the script in order to create the database:
mysql -u root -p < create.mysql.sql
PostgreSQL
Before you can use the PostgreSQL server with Horde, you must setup the SQL server and create the needed database tables.
cd /var/www/html/horde/scripts/sql
vi pgsql_create.sqlThen change the database password in the file and save it. Once you have set the password correctly in the script,
you should run the script in order to create the database:
psql -d template1 -f pgsql_create.sql -U postgres
psql -d horde -U horde -f auth.sql
psql -d horde -U horde -f category.sql
psql -d horde -U horde -f prefs.sqlNote that you may see some NOTICE messages from PostreSQL noting that implicit indexes have been created; these are normal and can be ignored.
Horde
First, you need to install the distribution default configuration files, present in the config subdirectory within each Horde application (including the base Horde configuration directory itself):
cd /var/www/html/horde
for a in . mnemo nag turba imp ingo kronolith passwd; do cd /var/www/html/horde/$a/config; for f in *.dist; do cp $f `basename $f .dist`; done; doneNext, we want to make sure that all the files have t
cd /var/www/html
chown -R apache:apache horde
chmod -R o-rwx hordeFinally, you now need to do the basic configuration of all the Horde applications using the Horde Administrative Interface . Log in to your Horde installation, at http://your.host.n
this list; you should be brought to a configuration screen. Go through each tab within this screen (if there are multiple tabs; otherwise there will just be a single page) and change any settings as you
process for every application in the Setup page.
Note that the above only configures the base configuration of the applications. There are other configuration files which you may
also want to configure for each application. Such configuration must be done by hand. See the docs/INSTALL file for each
application for more information on configuring that application.