The Horde Project provides a PHP-based Application Framework. It consists of webmail program IMP, a contact manager Turba, the calendar manager Kronolith, and many others. It also uses a backend-independent interfaces for dealing with preferences, logfiles, MIME, hierarchical data, authentication, data formats, encryption, forms, session handling, file storage and remote procedure calls.
Horde Groupware is a free, enterprise ready, browser based collaboration suite. Users can manage and share calendars, contacts, tasks and notes with the standards compliant components from the Horde Project. Horde Groupware bundles the separately available applications Kronolith, Turba, Nag and Mnemo. The Horde applications are written in PHP. For that reason they can be easily embedded directly into the web server, with plugins for not just Apache but also IIS, Sun Web Server, etc.
Stumble It! A list of major projects you can find here.
This workshop will describe how to install Horde Groupware Webmail Edition on an OpenSuse 10.3 server, so that users can read, send and organize email messages and manage and share calendars, contacts, tasks and notes with the standards compliant components from the Horde Project. Horde Groupware Webmail Edition bundles the separately available applications IMP, Ingo, Kronolith, Turba, Nag and Mnemo.
Please notice that we will not cover how to configure mail and imap services. Additional information you can obtain here:
http://www.exim.org/ http://www.dovecot.org/
Step 1: Installing OpenSuse 10.3
We will not explain how to install OpenSuse. If you are having problems, please use this website. I recommend installing a very basic system without “bells and whistles”. You really do not need KDE or Gnome and should install the server in text mode (see pictures below). Make sure to install sshd in the very beginning, so that we can do the rest remotely.
After the first configuration, please remove your installation DVD and add a new Online Repository. You will find an example in the pictures below. I also recommend installing an Update Source using the following command:
zypper ar -t YUM ftp://ftp5.gwdg.de/pub/opensuse/update/10.3 Update-10.3
Use a server next to your location.
Step 2: Installing Webmin
Webmin is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, Databases, Mailserver, file sharing and much more. To be honest, we do not need Webmin to get everything running, but it is an excellent tool to administer all services. The latest release adds improved LDAP and MySQL support for Postfix and SpamAssassin, database backup changes, a new logo, Bacula bugfixes and a bunch of other small improvements. Download the rpm package here and store it in your home directory:
http://www.webmin.com/download.html
The login and password are normally passed between the browser and the server in unencrypted form. For that reason an attacker with access to any of the networks between the browser and server can easily capture your Webmin login. To prevent this, Webmin can be configured to use SSL to encrypt all of its network traffic.
To get this done, you need to install additional packages using Yast – Software Management. Please install the following packages first:
openssl perl-Net_SSLeay
Please install webmin like this:
su cd /home/user/ rpm –i webmin-1.380-1.noarch.rpm The rest of the install will be done automatically to the directory /usr/libexec/webmin, the administration username set to root and the password to your current root password. You should now be able to login to Webmin at the URL:
https://server-ip:10000/
Step 3: Installing Apache with PHP support
Use YAST to install the following packages:
apache2 apache2-devel apache-mod_php5
In addition to your manual selections, other packages will be changed to resolve dependencies.
We also need the following php5 packages:
php5-devel php5-gd php5-gettext php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-ncurses php5-dom php5-openssl php5-zlib php5-ftp php5-tidy php5-xsl php5-pear_mail_mine
Start Apache like this:
/etc/init.d/apache2 start
To test our new Apache webserver with PHP support, we will create a small script (index.php) and will store it in the following directory:
/srv/www/htdocs
<?php phpinfo(); ?>
Please use your favourite browser to get information about installed PHP Version, Configuration, Apache2handler, Apache Environment, HTTP Headers Information and more.
http://ip-adress
Step 4: Installing Horde Groupware Webmail Edition
Download the latest version here:
http://www.horde.org/download/
cp horde-webmail-1.0.3.tar.gz /srv/www/htdocs/ cd /srv/www/htdocs/ tar xzf horde-webmail-1.0.3.tar.gz mv horde-webmail-1.0.3 horde-webmail chown -R nobody:nobody horde-webmail
Step 5: Installing MySQL, IMAP and Mailserver Use YAST to install the following packages:
mysql mysql-client dovecot exim MySQL server should work “out of the box”. Just use Webmin, go to the Server Section – MySQL Database Server and Start MySQL Server.
Let’s now create the necessary tables using Webmin. Under MySQL Databases you’ll find the entry “Create a new database”. Click on it and give it the name horde. Click on the new folder “Horde” to create the necessary tables by using the “Execute SQL” button. Go to the section “Select SQL commands file to execute on database horde …”, search for the following script and execute it:
/srv/www/htdocs/horde-webmail/scripts/sql/groupware.mysql.sql
Remark: If you are getting an error “Database horde already exists” then open the script using your favourite editor and disable the following line like this:
-- CREATE DATABASE horde; (around line 48)
The script has created all tables but also a new user called horde (password=horde) with all needed permissions. Please change the password immediately.
Dovecot is an open source IMAP and POP3 server for Linux/UNIX-like systems, written with security primarily in mind. It is an excellent choice for both small and large installations. It's fast, simple to set up, requires no special administration and it uses very little memory.
Use Webmin and go to the Server Section – Dovecot IMAP/POP3 Server – Networking and Protocols and enable IMAP. Save the settings and start the server. We will use most of the default settings for our workshop purposes, but you should later secure the settings by using SSL.
The Mailserver exim should work without problems after starting it. Please configure it to your needs. We will not cover this configuration.
Step 6: Configuring and testing Horde Groupware Webmail Edition
Open a console and run the following script as root:
/srv/www/htdocs/horde-webmail/scripts/setup.php
What is the web root path on your web server for this installation, i.e. the path of the address you use to access Horde Groupware Webmail Edition in your browser? [/horde-webmail] Hit enter
Configuration Menu (0) Exit (1) Configure database settings (2) Create database or tables (3) Configure administrator settings
Type your choice: 1
"(sybase) Sybase" is not a valid choice. What database backend should we use? [false] (false) [None] (dbase) dBase (ibase) Firebird/InterBase (fbsql) Frontbase (ifx) Informix (msql) mSQL (mssql) MS SQL Server (mysql) MySQL (mysqli) MySQL (mysqli) (oci8) Oracle (odbc) ODBC (pgsql) PostgreSQL (sqlite) SQLite (sybase) Sybase
Type your choice: mysql Request persistent connections? [0] Username to connect to the database as* [] horde Password to connect with [] mypassword
How should we connect to the database? [unix] (unix) UNIX Sockets (tcp) TCP/IP
Type your choice: enter Location of UNIX socket [] enter Database name to use* [] horde Internally used charset* [iso-8859-1] enter
Configuration Menu (0) Exit (1) Configure database settings (2) Create database or tables (3) Configure administrator settings
Type your choice: 0
Step 7: Install PECL Modules
Please use your favourite browser to make a first test. Open the following URL:
http://server-ip/horde-webmail/test.php
It’s now time to double check the installed modules. The test page above contains information about installed Horde Version, Horde Applications, PHP Version, PHP Module Capabilities, Miscellaneous PHP Settings and many more.
Before you continue the installation please check if you are missing important capabilities. As you can see, some module are still missing: · MIME Magic Support (fileinfo): No The fileinfo PECL module or the mime_magic PHP extension (see below) will most likely provide faster MIME Magic lookups than the built-in Horde PHP magic code. See horde/docs/INSTALL for information on how to install PECL/PHP extensions. · memcached Support (memcache): No The memcache PECL module is needed only if you are using the memcached SessionHandler. See horde/docs/INSTALL for information on how to install PECL/PHP extensions. · MIME Magic Support (mime_magic): No The fileinfo PECL module (see above) or the mime_magic PHP extension will most likely provide faster MIME Magic lookups than the built-in Horde PHP magic code. See horde/docs/INSTALL for information on how to install PECL/PHP extensions.
We need at least to install MIME Magic support and memcache support. Use Yast to install the following packages and dependencies:
php5-devel memcached gcc make file-devel re2c Run the following commands from your console:
pecl install fileinfo pecl install memcache
Open the php.ini file located in /etc/php5/apache2 and add the following two lines at the end:
extension=fileinfo.so extension=memcache.so
Restart Apache und refresh your test page. You should now see something like this:
· MIME Magic Support (fileinfo): Yes · memcached Support (memcache): Yes
Remark: I left the mime_magis support disabled, because it is already covered by the fileinfo support.
Step 8: Login and discover Horde Webmail!
Login as a valid user using the following URL:
http://server-ip/horde-webmail
Please notice that you can choose the language at the login screen already. To avoid the following error messages while sending emails:
This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
you should answer the following question in Mail – Options – Message Composition correctly:
When sending mail or expanding addresses, what domain should we append to unqualified addresses? (see picture below).
With the following commands, we make sure that all services start automatically after a server reboot.
chkonfig exim on chkonfig dovecot on chkonfig mysql on chkonfig apache2 on
|