From Fedora Project Wiki

Revision as of 14:31, 18 February 2011 by Lroudier (talk | contribs) (The goal of this howto is to install a mail server based on cyrus with a webmail based on horde (version 4))

Warning.png
This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

Summary

The goal of this howto is to install a mail server based on cyrus with a webmail based on horde (version 4)

Inside the server the different component

Initialisation and pre requis

Open a terminal and connect as Root and used-it for all different operation

> su -

First operation to do is to install all the loads from repository (fedora and rpmfusion)

> yum install httpd horde imp ingo kronolith turba mysql-server  php-mysql 389-ds 389-ds-base 389-ds-console policycoreutils-gui
cyrus-imapd cyrus-imapd-utils cyrus-sasl-ldap postfix fetchmail aspell php-pear-MDB2-Driver-mysql
php-pear-Mail-mimeDecode php-pear-Date-Holidays php-pear-HTTP-Request php-idn php-libpuzzle php-facedetect php-pecl-imagick php-pecl-geoip
php-pecl-lzf php-mbstring php-mcrypt php-pear-Services-Weather php-pear-Net-DNS openssl mod_ssl

Define in “/etc/php.ini“ the value of date.timezone. If you don’t do that you will a lot of error in the http log (for example : date.timezone = Europe/Paris)

Change SELINUX right to authorise external connection: TBD (for the moment deactivate by using IHM TBD)


We will consider in the next part of the document the different password

User or application Password
root Pass-root
Mysql (Application) Pass-mySql
Horde (inside mySql) Pass-horde-DB
389 DS administration Pass-389-admin
389 DS Directory Manager Pass-389-dir-man
user1 Pass-user1
user2 Pass-user2
admin pass-admin

We will also consider that your are located in the domain “domain.com” and the server is name”comp1”. The computer name and domain shall be correctly defined (can be check by command hostname) or the configuration will not be work correctly

And finally for security reason, we will used as possible crypted connection. For example LDAPS instead of LDAP. So for that we need to have a certificat First create the private certificate

> mkdir /etc/certificate 
> chmod 700 /etc/certificate 
> cd /etc/certificate 
> openssl genrsa -des3 -out server.key 1024

when the command ask you “Enter pass phrase for server.key: ” enter a sentence 'phrase' and remember it. Now create the csr file (Certificate Signing Request)

> cd /etc/certificate 
> openssl req -new -key server.key -out server.csr

  • Enter pass phrase for server.key: :==> 'phrase'
  • Country Name (2 letter code) [XX]: :==> answer it
  • State or Province Name (full name) []: :==> answer it
  • Locality Name (eg, city) [Default City]: :==> answer it
  • Organization Name (eg, company) [Default Company Ltd]: :==> answer it
  • Organizational Unit Name (eg, section) []: :==> answer it
  • Common Name (eg, your name or your server's hostname) []:==> domain.com
  • Email Address []: :==> admin@domain.com
  • A challenge password []:  :==> empty
  • An optional company name []:  :==> empty

Remove Passphrase from Key

> cd /etc/certificate 
> cp server.key server.key.org
> openssl rsa -in server.key.org -out server.key

Enter pass phrase for server.key.org: :==> 'phrase'

Generating a Self-Signed Certificate for 365 days (so you need to renew it each year, it's more secure)

> cd /etc/certificate 
> openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


Comment definition of port 80 (non secure access) in http.conf files

> gedit /etc/httpd/conf/httpd.conf

Add # before line “Listen 80” Co,nfigure ssl acces (port 443)

> gedit /etc/httpd/conf.d

/ssl.conf set line SSLCertificateFile /etc/certificate/server.crt SSLCertificateKeyFile /etc/certificate/server.key

edit the horde server part

> gedit /etc/httpd/conf.d/horde.conf

Add after “Allow from 127.0.0.1” the line “Allow from YouExternalIP”

Start the web server for the current session and added to the list of process to be started at init

> /sbin/chkconfig httpd on
> /etc/init.d/httpd start


Mysql configuration

Start the DB server for the current session and added to the list of process to be started at init

> /sbin/chkconfig mysqld on
> /etc/init.d/mysqld start

Configure mysql

> mysql_secure_installation

Enter current password for root (enter for none):==> Pass-root Change the root password? [Y/n] ==> y New password: ==> Pass-mySql Remove anonymous users? [Y/n] ==> Y Disallow root login remotely? [Y/n] ==> Y Remove test database and access to it? [Y/n] ==> Y Reload privilege tables now? [Y/n] ==> Y

Add in the DB the different tables for the used with horde First edit in the file “/usr/share/horde/scripts/sql/create.mysql.sql” and change the password (line after “-- IMPORTANT: Change this password.”) with “Pass-horde-BD“.

> gedit /usr/share/horde/scripts/sql/create.mysql.sql
> cd /usr/share/horde/scripts/sql/
> mysql -u root -p < create.mysql.sql

Used password : “Pass-mySql”

> cd /usr/share/horde/kronolith/scripts/sql/
> mysql -u root -p horde < kronolith.mysql.sql

Used password : “Pass-mySql“.

389 DS configuration

Initialisation of the server

The configuration of LDAP is more difficult and the chose on a fedora box is to use 389 DS instead (thank to the 389-console tool)

Add schema for Horde

> gedit /usr/share/horde/turba/scripts/ldap/rfc2739.schema

Change /usr/share/horde/turba/scripts/ldap/rfc2739.schema in "attribute" by "attributetype"

> cd /usr/lib/dirsrv/perl
> wget Http://directory.fedoraproject.org/download/ol-schema-migrate.pl
> chmod 700 ol-schema-migrate.pl 
> ./ol-schema-migrate.pl -b /usr/share/horde/scripts/ldap/horde.schema > /etc/dirsrv/schema/60horde.ldif
> ./ol-schema-migrate.pl -b /usr/share/horde/turba/scripts/ldap/rfc2739.schema > /etc/dirsrv/schema/05rfc2739.ldif

Configure 389 DS

> setup-ds-admin.pl -u

Would you like to continue with set up? [yes]:==> yes Do you agree to the license terms? [no]: ==> yes Would you like to continue? [no]: ==> yes (With the use of 386 DS for personal usage, the limit is OK) Choose a setup type [2]: ==> 2 Computer name [comp1.domain.com]: ==> comp1.domain.com System User [nobody]: ==> nobody (User ‘nobody’ already exist in based fedora install) System Group [nobody]: ==> nobody Do you want to register this software with an existing configuration directory server? [no]: ==> no administrator ID [admin]: ==> admin Password: ==> Pass-389-admin Password (confirm): ==> Pass-389-admin Administration Domain [domain.com]: ==> domain.com Directory server network port [389]: ==> 389 Directory server identifier [comp1]: ==> comp1 Suffix [dc=domain, dc=com]: ==> dc=domain, dc=com Directory Manager DN [cn=Directory Manager]: ==> cn=Directory Manager Password: ==> Pass-389-dir-man Password (confirm): ==> Pass-389-dir-man Administration port [9830]: ==> 9830 Are you ready to set up your servers? [yes]: ==> yes

Add the certificate so the LDAP server will be secure

> cd /etc/dirsrv/slapd-comp1 binary
> openssl pkcs12 -export -inkey /etc/certificate/server.key -in /etc/certificate/server.crt -out /tmp/crt.p12 -nodes -name 'Server-Cert' 

Enter Export Password: :==> none Verifying - Enter Export Password: :==> none

> pk12util -i /tmp/crt.p12 -d .

Enter new password: :==> none Re-enter password: :==> none Enter password for PKCS12 file: :==> none • certutil -d . -A -n "My Local CA" -t CT,, -a -i /etc/certificate/server.crt

Now we will update the configuration to use the secure port only (636) for that create 2 files

First /tmp/ssl_enable.ldif dn: cn=encryption,cn=config changetype: modify replace: nsSSL3 nsSSL3: on - replace: nsSSLClientAuth nsSSLClientAuth: required - add: nsSSL3Ciphers nsSSL3Ciphers: -rsa_null_md5,+rsa_rc4_128_md5,+rsa_rc4_40_md5,+rsa_rc2_40_md5,+rsa_des_sha,+rsa_fips_des_sha,+rsa_3des_sha,+rsa_fips_3des_sha,+fortezza,+fortezza_rc4_128_sha,+fortezza_null,+tls_rsa_export1024_with_rc4_56_sha,+tls_rsa_export1024_with_des_cbc_sha,-rc4,-rc4export,-rc2,-rc2export,-des,-desede3

dn: cn=config changetype: modify add: nsslapd-security nsslapd-security: on - replace: nsslapd-ssl-check-hostname nsslapd-ssl-check-hostname: off - replace: nsslapd-port nsslapd-port: 0

And /tmp/addRSA.ldif dn: cn=RSA,cn=encryption,cn=config changetype: add objectclass: top objectclass: nsEncryptionModule cn: RSA nsSSLPersonalitySSL: Server-Cert nsSSLToken: internal (software) nsSSLActivation: on


insert this file in the LDAP server

> /usr/lib/mozldap/ldapmodify -D "cn=directory manager" -w - -f /tmp/ssl_enable.ldif
> /usr/lib/mozldap/ldapmodify -D "cn=directory manager" -w - -a -f /tmp/addRSA.ldif

Each time used the password : Pass-389-dir-man

Start the 389 DS for the current session and added to the list of process to be started at init

> /sbin/chkconfig dirsrv on
> /etc/init.d/dirsrv restart

Directory service filling

With admin tool

insert the certificate in admin tool

> cd /etc/dirsrv/admin-serv
> certutil -A -d . -n "CA certificate" -t "CT,," -a -i /etc/certificate/server.crt

Start the 389 DS admin server for the current session. When the tool is needed (change of LDAP database) this action is needed to used it

> /etc/init.d/dirsrv-admin start


Start the tool Name: “admin” Password: “Pass-389-admin” Server: “http://comp1.domain.com:9830”

> /usr/bin/389-console

(TBD)

create admin et root account

Direct import

5. Mail configuration 5.1. Fetchmail Fetchmail is configure by a single file “/etc/fetchmailrc”  gedit /etc/fetchmailrc

The format of the file is described in the man page of fetchmail. Here is the main command of the file • set : allow to configure a parameter o set daemon <interval> : polling interval of fetchmail in second o set syslog : redirect status and error messages emitted to the syslog • smtphost <internal server>: internal server where the mail has to be send. In our case as we used postfix, we must have the socket of the postfix lmtp server • poll <mail server>: indicate the mail serveur to be poll o protocol <proto>: protocol for the polling (POP3 or IMAP) o username <login>: indicate the login on the server o password <pass>: indicate the login on the server o to <internal>: give the internal login on LDAP • Usefull option o keep: option to keep the mail on the server o fetchall : option to get all the mail on the server (read or not read)

An example of “fetchmailrc” file

set daemon 300 set syslog poll "pop.mail.yahoo.fr" protocol POP3 username "login" password "password" to user1@comp1.domain.com fetchall poll "serveur2" protocol IMAP username “login" password "password" keep to user2@comp1.domain.com smtphost "/var/lib/imap/socket/lmtp"


This file must be protected (it included your mail password)  chmod 600 /etc/fetchmailrc

By default, no daemon mode is defined, so this must be done by creating the init function as for other daemon  gedit /etc/init.d/fetchmail


  1. This shell script takes care of starting and stopping
  2. fetchmail.
  3. chkconfig: 2345 81 45
  4. description: The Fetchmail daemons allows to retrieve mail using various
  5. mail protocols and route them to the local MTA just as if
  6. the mail was sent directly to the local MTA. This is
  7. specially useful on intermittent dial-up connections.
  8. processname: fetchmail
  9. config: /etc/fetchmailrc
  10. author[s]:
  11. Andrea Sterbini <a.sterbini@itelcad.it>
  12. ObiTuarY <obituary@freshmeat.net>

. /etc/rc.d/init.d/functions

  1. Source networking configuration.

. /etc/sysconfig/network

  1. Check that networking is up.

if [ ${NETWORKING} = "no" ] then exit 0 fi

  1. See how we were called.

case "$1" in

 start)

if [ -s /etc/fetchmailrc ]; then echo -n "Loading fetchmail: " daemon /usr/bin/fetchmail -f /etc/fetchmailrc echo touch /var/lock/subsys/fetchmail else exit 1 fi ;;

 stop)	

echo -n "Shutting down fetchmail: " /usr/bin/fetchmail -q >/dev/null 2>&1 && echo fetchmail

  1. killproc fetchmail

rm -f /var/lock/subsys/fetchmail ;;

 status)
       status fetchmail
       ;;
 restart|reload)
       $0 stop
       $0 start
       ;; 

*) echo "Usage: fetchmail {start|stop|status|restart|reload}" exit 1 esac

exit 0

  1. === End of File ===

5.2. postfix

A lot of web article speak about he choice of postfix versus sendmail, so we will not discuss it. The choice made here is postfix

All file for the configuration of postfix can be found in the folder ‘/etc/postfix’

Configuration of postfix  gedit /etc/postfix/main.cf Change this value myhostname = comp1.domain.com mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp inet_interfaces = $myhostname,localhost mynetworks_style = host relayhost = smtp.monprovider.fr smtpd_banner = $myhostname ESMTP $mail_name

  1. smtpd_tls_security_level = may

smtpd_tls_security_level = none

  1. unknown_local_recipient_reject_code = 550

unknown_local_recipient_reject_code = 450 alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf

Now you must define the link between LDAP and postfix  gedit /etc/postfix/ldap-aliases.cf


server_host = ldap://localhost:389 search_base = ou=People,dc=domain,dc=com query_filter = mail=%u@%2.com result_format = %u domain = deomain.com


for internal mail we used the alias database, so you must edit the alias database  gedit /etc/aliases Replace all root/news/ftp/webmaster/postmaster par user1 and add “root: user1” Generate the binary database  postalias /etc/aliases

5.3. cyrus Configuration of postfix  gedit /etc/cyrus.conf

commenter dans SERVICES  : imap, impas, pop3, pop3s, sieve ajouter a SERVICE : imaplocal cmd="imapd -C /etc/imapd-local.conf" listen="127.0.0.1:imap" prefork=0


Configuration of cyrus  gedit /etc/imapd-local.conf

servername: 127.0.0.1 configdirectory: /var/lib/imap partition-default: /var/spool/imap reject8bit: no munge8bit: yes admins: cyrus root allowanonymouslogin: no hashimapspool: true allowplaintext: yes sasl_pwcheck_method: saslauthd sasl_mech_list: PLAIN tls_require_cert: false lmtpsocket: /var/lib/imap/socket/lmtp Configuration of sasl

 gedit /etc/sysconfig/saslauth

MECH: ==> ldap

 gedit /etc/sysconfig/saslauthd

auxprop_plugin: slapd ldap_servers: ldap://localhost:389 ldap_default_domain: domain.com ldap_auth_method: bind ldap_use_sasl: no ldap_start_tls: no ldap_bind_dn: cn=Directory Manager ldap_bind_pw: ????TND????, ldap_search_base: ou=People,dc=domain,dc=com ldap_scope: sub ldap_filter: uid=%u ldap_password_attr: userPassword


5.4. Start of all server Stop the sendmail server as we used postfix instead  /sbin/chkconfig sendmail off  /etc/init.d/sendmail stop

Start the servers for the current session and added to the list of process to be started at init  /sbin/chkconfig postfix on  /sbin/chkconfig cyrus-imapd on  /sbin/chkconfig fetchmail on  /sbin/chkconfig saslauthd on  /etc/init.d/postfix start  /etc/init.d/cyrus-imapd start  /etc/init.d/fetchmail start  /etc/init.d/saslauthd start




6. Horde configuration 6.1. Horde base configuration Change under your configuration the following value (http://127.0.0.1/horde/???

Page Parameter name Value Comments General vhosts false Default General debug_level E_ALL & ~E_NOTICE Default General max_exec_time 0 Default General compress_pages true Default General secret_key 'xxxxxxxxxxxxxxxxxxxxxxxxx' Default (generated during installation) General umask 077 Default General use_ssl 2 Default General server/name $_SERVER['SERVER_NAME'] Default General server/port $_SERVER['SERVER_PORT'] Default General urls/token_lifetime 30 Default General urls/hmac_lifetime 30 Default General urls/pretty false Default General safe_ips array() Default General session/name 'Horde' Default General session/use_only_cookies true Default General session/cache_limiter 'nocache' Default General session/timeout 0 Default General cookie/domain $_SERVER['SERVER_NAME'] Default General cookie/path '/horde' Default Database sql/persistent false Default Database sql/username 'horde' My horde login Database sql/password 'Pass-mySql' My sql password Database sql/protocol 'unix' Default Database sql/socket Default Database sql/database 'horde' The horde database Database sql/charset 'utf-8' Default Database sql/ca Default Database sql/ssl false Default Database sql/splitread false Default Database sql/phptype 'mysql' Default Authentification auth/admins array('admin') Default Authentification auth/checkip true Default Authentification auth/checkbrowser true Default Authentification auth/alternate_login false Default Authentification auth/redirect_on_logout false Default Authentification auth/list_users 'list' Default Authentification auth/params/hostspec 'comp1.domain.com’ The server Authentification auth/params/basedn 'ou=People,dc=domain, dc=com' Access all people in LDAP Authentification auth/params/binddn 'cn=Directory Manager' The admin of LDAP Authentification auth/params/password 'Pass-389-dir-man' 389 DS Directory Manager password Authentification auth/params/version '3' Default Authentification auth/params/sizelimit Default Authentification auth/params/tls true Authentification auth/params/scope 'sub' Default Authentification auth/params/ad false Default Authentification auth/params/uid 'uid' Default Authentification auth/params/encryption 'ssha' Default Authentification auth/params/newuser_objectclass array('inetOrgPerson', 'organizationalPerson', 'person', 'hordePerson') When create a new user used all this object Authentification auth/params/objectclass array('inetOrgPerson') Search object Authentification auth/params/filter_type 'objectclass' Default Authentification auth/params/password_expiration 'no' Default Authentification auth/driver 'ldap' Sure, we need to use LDAP Sign Up signup/allow false Default Logging log/enabled false Default Logging log_accesskeys false Default Preference System prefs/maxsize Default Preference System prefs/params/hostspec 'comp1.domain.com’ The server Preference System prefs/params/port 389 Default Preference System prefs/params/version '3' Default Preference System prefs/params/tls false Default Preference System prefs/params/basedn 'ou=People,dc=domain, dc=com' Preference System prefs/params/searchdn 'cn=Directory Manager' Preference System prefs/params/searchpw 'Pass-389-dir-man' 389 DS Directory Manager password Preference System prefs/params/admindn 'cn=Directory Manager' Default Preference System prefs/params/adminpw 'Pass-389-dir-man' 389 DS Directory Manager password Preference System prefs/params/writedn 'admin' Default Preference System prefs/params/uid 'uid' Default Preference System prefs/driver 'ldap' Default Alarm System alarms/params/driverconfig 'horde' Default Alarm System alarms/params/ttl 300 Default Alarm System alarms/params/table Default Alarm System alarms/driver 'sql' Default DataTree System datatree/params/driverconfig 'horde’ Default DataTree System datatree/params/table '’ Default DataTree System datatree/params/table_attributes] '’ Default DataTree System datatree/driver 'sql’ Default Groups group/params/hostspec 'comp1.domain.com’ The server Groups group/params/basedn 'ou=Groups,dc=domain,dc=com' Default Groups group/params/binddn 'cn=Directory Manager' Default Groups group/params/password 'Pass-389-dir-man’ 389 DS Directory Manager password Groups group/params/version '3’ Default Groups group/params/tls true Groups group/params/gid 'cn’ Default Groups group/params/memberuid 'memberUid’ Default Groups group/params/attrisdn false Default Groups group/params/newgroup_objectclass array('groupofuniquenames', 'hordeGroup', 'posixGroup') Default Groups group/params/objectclass array('posixGroup') Default Groups group/params/filter_type 'objectclass’ Default Groups group/driver 'ldap’ Default Groups group/cache false Default Permissions perms/driver 'datatree’ Default Shares share/no_sharing true Default Shares share/any_group true Default Shares share/cache false Default Shares share/driver 'datatree’ Default Cache System cache/default_lifetime 86400 Default Cache System cache/params/dir Default Cache System cache/params/sub 0 Default Cache System cache/params/prefix Default Cache System cache/driver 'file’ Default Lock System lock/driver 'none’ Default Token System token/driver 'none’ Default Token System Token/timeout '’ Default Mailer mailer/params/auth true Default Mailer mailer/type 'smtp’ Default Mailer mailformat/brokenrfc2231 false Default Virtual File Storage vfs/params/vfsroot '/home/Horde_vf’ Default Virtual File Storage vfs/type 'file’ Default Custom Session Handler sessionhandler/type 'none’ Default Custom Session Handler sessionhandler/memcache false Default Problem Reporting problems/email 'webmaster@domain.com’ Default Problem Reporting problems/maildomain 'domain.com’ Default Problem Reporting problems/tickets false Default Problem Reporting problems/attachments true Default Menu menu/apps array() Default Menu menu/always false Default Menu menu/links/help 'all’ Default Menu menu/links/options 'authenticated’ Default Menu menu/links/problem 'all’ Default Menu menu/links/login 'all’ Default Menu menu/links/logout 'authenticated’ Default Custom Function Hooks hooks/permsdenied false Default Custom Function Hooks hooks/username false Default Custom Function Hooks hooks/preauthenticate false Default Custom Function Hooks hooks/postauthenticate false Default Custom Function Hooks hooks/authldap false Default Custom Function Hooks hooks/groupldap false Default Portal Blocks portal/fixed_blocks array() Default Portal Blocks accounts/driver 'null’ Default User Capabilities and Constraints user/verify_from_addr true Default IMSP Server imsp/enabled false Default Kolab Server kolab/enabled false Default Memcache Server memcache/enabled false Default

V4


Page Parameter name Value Comments General vhosts false Default General debug_level E_ALL & ~E_NOTICE Default General max_exec_time 0 Default General compress_pages true Default General secret_key 'xxxxxxxxxxxxxxxxxxxxxxxxx' Default (generated during installation) General umask 077 Default General testdisable true Default General tmpdir Default General use_ssl 2 Default General server/name $_SERVER['SERVER_NAME'] Default General server/port $_SERVER['SERVER_PORT'] Default General urls/token_lifetime 30 Default General urls/hmac_lifetime 30 Default General urls/pretty false Default General safe_ips array() Default General session/name 'Horde' Default General session/use_only_cookies true Default General session/cache_limiter 'nocache' Default General session/timeout 0 Default General cookie/domain $_SERVER['SERVER_NAME'] Default General cookie/path '/horde' Installation path Database sql/persistent false Default Database sql/username 'horde' My horde login Database sql/password 'Pass-mySql' My sql password Database sql/protocol 'unix' Default Database sql/socket Default Database sql/database 'horde' The horde database Database sql/charset 'utf-8' Default Database sql/ca Default Database sql/ssl false Default Database sql/splitread false Default Database sql/phptype 'mysql' Default LDAP Ldap/useldap yes Sure, we need to use LDAP LDAP Ldap/hostspec 'comp1.domain.com’ The server LDAP Ldap/port Default LDAP Ldap/tls no Default LDAP Ldap/version 3 Default LDAP Ldap/bindas Bind with administration Default LDAP Ldap/binddn 'cn=Directory Manager' login LDAP Ldap/bindpw 'Pass-389-dir-man’ 389 DS Directory Manager password Authentification auth/admins array('admin') Default Authentification auth/checkip true Default Authentification auth/checkbrowser true Default Authentification auth/alternate_login false Default Authentification auth/redirect_on_logout false Default Authentification auth/list_users 'list' Default Authentification auth/params/driverconfig 'horde default’ Default Authentification auth/params/basedn 'ou=people,dc=domain, dc=com' Access all people in LDAP Authentification auth/params/scope 'sub' Default Authentification auth/params/ad false Default Authentification auth/params/uid 'uid' Default Authentification auth/params/encryption 'ssha' Default Authentification auth/params/newuser_objectclass array('inetOrgPerson', 'organizationalPerson', 'person', 'hordePerson') When create a new user used all this object Authentification auth/params/filter (objectclass=inetOrgPerson) Search object Authentification auth/params/password_expiration 'no' Default Authentification auth/driver 'ldap' Sure, we need to use LDAP Terms of Service Agreement tos/file Default Sign Up signup/allow false Default Logging log/enabled false Default Logging log_accesskeys false Default Preference System prefs/maxsize Default Preference System prefs/params/basedn 'ou=people,dc=domain, dc=com' My config Preference System prefs/params/driverconfig 'Horde default' Default Preference System prefs/params/scope 'Subtree search' Default Preference System prefs/params/uid 'uid' Default Preference System prefs/driver 'ldap' Default Alarm System alarms/params/driverconfig 'horde' Default Alarm System alarms/params/ttl 300 Default Alarm System alarms/params/table Default Alarm System alarms/driver 'sql' Default DataTree System datatree/params/driverconfig 'horde’ Default DataTree System datatree/params/table '’ Default DataTree System datatree/params/table_attributes] '’ Default DataTree System datatree/driver 'sql’ Default Groups group/params/driverconfig 'horde default' Default Groups group/params/basedn 'ou=groups,dc=domain, dc=com' Default Groups group/params/scope 'sub' Default Groups group/params/gid 'cn’ Default Groups group/params/memberuid 'memberUid’ Default Groups group/params/attrisdn false Default Groups group/params/newgroup_objectclass array('groupofuniquenames', 'hordeGroup', 'posixGroup') Default Groups group/params/objectclass array('posixGroup') Default Groups group/params/filter_type 'objectclass’ Default Groups group/driver 'ldap’ Default Groups group/cache false Default Permissions perms/driver 'sql’ Default Permissions perms/driverconfig 'horde default’ Default Shares share/no_sharing true My configuration Shares share/auto_create true Default Shares share/world true Default Shares share/any_group false Default Shares share/cache false Default Shares share/hidden false Default Shares share/cache false Default Shares share/driver 'sql’ Default Cache System cache/default_lifetime 86400 Default Cache System cache/params/dir Default Cache System cache/params/sub 0 Default Cache System cache/params/prefix Default Cache System cache/params/compress yes Default Cache System cache/use_memorycache 'none' Default Cache System cache/driver 'file’ TBD CSS Cachingcachecss cachecss no Default Javascript Caching cachejs no Default Theme Caching cachethemes no Default Lock System lock/driver 'none’ Default Token System token/driver 'none’ Default Token System Token/timeout '’ Default Mailer mailer/params/host Default Mailer mailer/params/port Default Mailer mailer/params/localhost Default Mailer mailer/params/auth 'Best available authentification' My configuration Mailer mailer/params/username Default Mailer mailer/params/password Default Mailer mailer/type 'smtp’ My configuration Mailer mailformat/brokenrfc2231 false Default Virtual File Storage vfs/params/vfsroot '/home/Horde_vf’ Default Virtual File Storage vfs/type 'file’ Default Custom Session Handler sessionhandler/type 'none’ Default Custom Session Handler sessionhandler/memcache false Default HTTP Proxy Settings Http/proxy/proxy_host Default HTTP Proxy Settings Http/proxy/proxy_port Default HTTP Proxy Settings Http/proxy/proxy_user Default HTTP Proxy Settings Http/proxy/proxy_pass Default Spell Checker Settings spell/driver 'aspell' My configuration Spell Checker Settings spell/params/path '/usr/bin/' My configuration OpenSSL Settings openssl/cafile Default OpenSSL Settings openssl/path Default GnuPG Settings Gnupg/path Default GnuPG Settings Gnupg/keyserver Pgp.mit.edu Default GnuPG Settings Gnupg/timeout 10 Default Image Manipulation Settings Image/driver 'PECL image magic' My configuration Image Metadata Driver Settings exif/driver Bundel Default MIME Detection Settings Mime/magic_db '/usr/share/misc/magic' Fedora configuration Country Lookup Settings geoip/datafile Default Problem Reporting problems/email 'admin@domain.com’ Default Problem Reporting problems/maildomain 'domain.com’ Default Problem Reporting problems/tickets false Default Problem Reporting problems/username Default Problem Reporting problems/password Default Problem Reporting problems/attachments true Default Menu menu/apps array() Default Menu menu/always false Default Menu menu/links/help 'all’ Default Menu menu/links/options 'authenticated’ Default Menu menu/links/problem 'all’ Default Menu menu/links/login 'all’ Default Menu menu/links/logout 'authenticated’ Default Menu logo/image '’ Default Menu logo/link '’ Default Portal Blocks portal/fixed_blocks array() Default Portal Blocks accounts/driver 'null’ Default User Capabilities and Constraints user/verify_from_addr false Default API keys API keys API keys API keys API keys IMSP Server imsp/enabled false Default Kolab Server kolab/enabled false Default Memcache Server memcache/enabled false Default ActiveSync

6.2. IMP configuration IMP is a email part of horde, all the mail are managed by cyrus, configuration is done in two places, directly under horde/configuration, with administration account. And also in a specific file written in php to describe the mail database connection

Modification of the php file of imp to access the mail database :  gedit /etc/horde/imp/servers.php

A connection to data is made throw a “servers”, so the first operation is to comment all the “$servers[“

Add a the source to connect to the mail database.

$servers['cyrus'] = array(

   'name' => 'Cyrus IMAP Server',
   'server' => '127.0.0.1',
   'hordeauth' => true,
   'protocol' => 'imap/notls',
   'port' => 143,
   'maildomain' => domain.com',
   'smtphost' => '127.0.0.1',
   'smtpport' => 25,
   'realm' => ,
   'preferred' => ,
   'admin' => array(
       'params' => array(
           'login' => 'administrator',
           'password' => '?????TBD????,',
           // The 'userhierarchy' parameter defaults to 'user.'
           // If you are using a nonstandard hierarchy for personal
           // mailboxes, you will need to set it here.
           'userhierarchy' => 'user.',
           // Although these defaults are normally all that is required,
           // you can modify the following parameters from their default
           // values.
           'protocol' => 'imap/notls',
           'hostspec' => 'localhost',
           'port' => 143
       )
   ),
   'quota' => array(
       'driver' => 'imap',
       'params' => array('hide_quota_when_unlimited' => true),
   ),
   'acl' => array(
       'driver' => 'rfc2086',
   ),

);


Change under your configuration the following value (http://127.0.0.1/horde/??? 127.0.0.1/horde/???

Page Parameter name Value Comments External Utilities and Menu spell/params/path '/usr/bin/' Default External Utilities and Menu spell/driver 'aspell' Default External Utilities and Menu utils/gnupg Default External Utilities and Menu utils/gnupg_keyserver array('pgp.mit.edu') Default External Utilities and Menu utils/gnupg_timeout 10 Default External Utilities and Menu utils/openssl_cafile Default External Utilities and Menu utils/openssl_binary Default External Utilities and Menu menu/apps array() Default User Capabilities and Constraints user/select_sentmail_folder false Default User Capabilities and Constraints user/allow_resume_all_in_drafts false Default User Capabilities and Constraints user/allow_folders true Default User Capabilities and Constraints user/allow_resume_all false Default User Capabilities and Constraints user/allow_view_source true Default User Capabilities and Constraints user/alternate_login false Default User Capabilities and Constraints user/redirect_on_logout false Default User Capabilities and Constraints user/select_view true Default Server server/server_list 'shown' Default Server server/fixed_folders array() Default Server server/sort_limit 0 Default Server server/cache_folders true Default Server server/token_lifetime 1800 Default Server server/cachejs 'none' Default Server server/cachecss 'none' Default Mailbox and Fetchmail mailbox/show_preview true Default Mailbox and Fetchmail fetchmail/show_account_colors false Default Mailbox and Fetchmail fetchmail/size_limit 4000000 Default Mailbox and Fetchmail msgcache/use_msgcache false Default Mailbox and Fetchmail mlistcache/use_mlistcache false Default Message and Spam msgsettings/filtering/words './config/filter.txt' Default Message and Spam msgsettings/filtering/replacement '****' Default Message and Spam spam/reporting false Default Message and Spam notspam/reporting false Default Message and Spam print/add_printedby true Default Compose msg/prepend_header true Default Compose msg/append_trailer false Default Compose compose/allow_receipts true Default Compose compose/special_characters true Default Compose compose/use_vfs false Default Compose compose/link_all_attachments false Default Compose compose/link_attachments_notify true Default Compose compose/link_attachments true Default Compose compose/attach_size_limit 0 Default Compose compose/attach_count_limit 0 Default Compose compose/reply_limit 200000 Default Custom Hooks hooks/vinfo false Default Custom Hooks hooks/postlogin false Default Custom Hooks hooks/postsent false Default Custom Hooks hooks/signature false Default Custom Hooks hooks/trailer false Default Custom Hooks hooks/fetchmail_filter false Default Custom Hooks hooks/mbox_redirect false Default Custom Hooks hooks/mbox_icon false Default Custom Hooks hooks/spam_bounce false Default Custom Hooks hooks/msglist_format false Default Custom Hooks hooks/display_folder false Default Other settings maillog/use_maillog true Default Other settings sentmail/driver 'none' Default Other settings tasklist/use_tasklist true Default Other settings notepad/use_notepad true Default Other settings tos/file Default



6.3. kronolith configuration All the information for the diary is stored in the SQL database Change under your configuration the following value (http://127.0.0.1/horde/???



Page Parameter name Value Comments Calendar Driver calendar/params/table 'kronolith_events' Default Calendar Driver calendar/params/driverconfig 'horde' Default Calendar Driver calendar/driver 'sql' Default Calendar Driver storage/params/table 'kronolith_storage' Default Calendar Driver storage/params/driverconfig 'horde' Default Calendar Driver storage/driver 'sql' Default Calendar Driver metadata/keywords false Default Calendar Driver reminder/server_name '127.0.0.1' localhost Calendar Driver reminder/from_addr 'reminders@domain.com' The address fom witch you send remeinder Calendar Driver autoshare/shareperms 'read' Default Calendar Driver holidays/enable true Default Calendar Driver menu/print true Default Calendar Driver menu/import_export true Default Calendar Driver menu/apps array() Default

V4


Page Parameter name Value Comments Calendar Driver calendar/params/table 'kronolith_events' Default Calendar Driver calendar/params/driverconfig 'horde' Default Calendar Driver calendar/params/utc 'true' Default Calendar Driver calendar/driver 'sql' Default Calendar Driver storage/default_domain Default Calendar Driver storage/params/table 'kronolith_storage' Default Calendar Driver storage/params/driverconfig 'horde' Default Calendar Driver storage/driver 'sql' Default Calendar Driver reminder/server_name '127.0.0.1' localhost Calendar Driver reminder/from_addr 'reminders@domain.com' The address fom witch you send remeinder Calendar Driver autoshare/shareperms 'read' Default Calendar Driver share/notify false Default Calendar Driver holidays/enable true Default Calendar Driver menu/print true Default Calendar Driver menu/import_export true Default Calendar Driver menu/apps array() Default Calendar Driver Maps/driver 'No inline maps' Default


6.4. Ingo configuration 6.5. Turba configuration Turba is a contact database, all the contact will be stored in the LDAP, configuration is done in two places, directly under horde/configuration, with administration account. and also in a specific file written in php to describe the LDAP connection

Modification of the php file of turba to access the contact database (LDAP) :  gedit /etc/horde/turba/sources.php

A connection to data is made throw a “cfgSources”, so the first operation is to comment all the “$cfgSources[“ Add a first source to implement the contact (will be stored as LDAP schema 'turbaContact')

$cfgSources['localldap'] = array(

   'title' => _("Shared Directory"),
   'type' => 'ldap',
   'params' => array(
       'server' => 'comp.domain.com',
       'port' => 389,
       'tls' => true,
       'root' => 'dc=domain,dc=com',
       'bind_dn' => 'cn=Directory Manager',
       'bind_password' => '?????TBD?????,',
       'sizelimit' => 200,
       'dn' => array('cn'),
       'objectclass' => array('top',
                              'person',
                              'organizationalPerson',
                              'inetOrgPerson','turbaContact'),
                              // Add 'turbaContact' to this array if using
                              // 'turbaType' attribute below, and 'calEntry'
                              // if using 'freebusyUrl'.
       'scope' => 'one',
       'charset' => 'utf-8',
       // Consult the LDAP schema to verify that all required attributes for
       // an entry are set and add them if needed.
       'checkrequired' => false,
       // Value used to fill in missing required attributes.
       'checkrequired_string' => ' ',
       // Check LDAP schema for valid syntax. If this is false an address
       // field is assumed to have postalAddress syntax; otherwise the schema
       // is consulted for the syntax to use.
       'checksyntax' => false,
       'version' => 3
   ),
   'map' => array(
       '__key' => 'dn',
       '__uid' => 'uid',
       // From horde.schema.  Make sure you have 'turbaContact' objectClass
       // included above:
       '__type' => 'turbaType',
       '__members' => 'turbaMembers',
       'name' => 'cn',
       'lastname' => 'sn',
       'email' => 'mail',
       'homePhone' => 'homephone',
       'workPhone' => 'telephonenumber',
       'cellPhone' => 'mobiletelephonenumber',
       'homeAddress' => 'homepostaladdress',

//

       // From rfc2739.schema:
       'freebusyUrl' => 'calFBURL',
   ),
   'search' => array(
       'name',

'lastname',

       'email',
       'homePhone',
       'workPhone',
       'cellPhone',
       'homeAddress'
   ),
   'strict' => array(
       'dn',
   ),
   'approximate' => array(
       'cn',
   ),
   'export' => true,
   'browse' => true,

);


Add a second source to implement the users of the system (will be stored as LDAP schema ‘initPeople’) $_ldap_uid = Auth::getBareAuth(); $_ldap_basedn = 'dc=example,dc=com'; $cfgSources['personal_ldap'] = array(

   'title' => _("My Address Book"),
   'type' => 'ldap',
   'params' => array(
       'server' => 'localhost',
       'tls' => true,
       'root' => 'ou=' . $_ldap_uid . ',ou=personal_addressbook,' . $_ldap_basedn,
       'bind_dn' => 'uid=' . $_ldap_uid . ',ou=People,' . $_ldap_basedn,
       'bind_password' => Auth::getCredential('password'),
       'dn' => array('uid'),
       'objectclass' => array('top',
                              'person',
                              // 'turbaContact',
                              'inetOrgPerson',
                              // 'calEntry',
                              'organizationalPerson'),
       'scope' => 'one',
       'charset' => 'utf-8',
       'version' => 3
   ),
   'map' => array(
       '__key' => 'dn',
       '__uid' => 'uid',
       From horde.schema:
       // '__type' => 'turbaType',
       // '__members' => 'turbaMembers',
       'name' => 'cn',
       'email' => 'mail',
       'lastname' => 'sn',
       'title' => 'title',
       'company' => 'organizationname',
       'businessCategory' => 'businesscategory',
       'workAddress' => 'postaladdress',
       'workPostalCode' => 'postalcode',
       'workPhone' => 'telephonenumber',
       'fax' => 'facsimiletelephonenumber',
       'homeAddress' => 'homepostaladdress',
       'homePhone' => 'homephone',
       'cellPhone' => 'mobile',
       'notes' => 'description',
       // Evolution interopt attributes: (those that do not require the
       // evolution.schema)
       'office' => 'roomNumber',
       'department' => 'ou',
       'nickname' => 'displayName',
       'website' => 'labeledURI',
       // These are not stored on the LDAP server.
       'pgpPublicKey' => 'object_pgppublickey',
       'smimePublicKey' => 'object_smimepublickey',
       // From rfc2739.schema:
       // 'freebusyUrl' => 'calFBURL',
   ),
   'search' => array(
       'name',
       'email',
       'businessCategory',
       'title',
       'homePhone',
       'workPhone',
       'cellPhone',
       'homeAddress'
   ),
   'strict' => array(
       'dn',
   ),
   'approximate' => array(
       'cn',
   ),
   'export' => true,
   'browse' => true,

);


Change if necessary your configuration the following value (http://127.0.0.1/ horde/???) 127.0.0.1/horde/???

Page Parameter name Value Comments General vhosts false Default General debug_level E_ALL & ~E_NOTICE Default

Parameter name Value Comments menu/import_export true Default menu/apps array() Default client/addressbook 'localldap' The predefined source for contact shares/source 'localldap' The predefined source for contact comments/allow true Default documents/type 'Horde defaults' Change to horde configuration

6.6. Gollem configuration Gollem is a web-based File Manager, configuration is done in two places, directly under horde/configuration, with administration account. and also in two specific files written in php to describe the file connection

First get this module directly from horde website and install it (no rpm for it)  wget ftp://ftp.horde.org/pub/gollem/gollem-h3-1.1.2.tar.gz  tar -xvf gollem-h3-1.1.2.tar.gz  cd gollem-h3-1.1.2  mv config /etc/horde/gollem  chown -R apache:apache /etc/horde/gollem  chmod -R 770 /etc/horde/gollem  cd ..  mv gollem-h3-1.1.2 /usr/share/horde/gollem  cd /usr/share/horde/gollem  ln -s ../../../../etc/horde/gollem config

Modification of the php file of gollem to correct the link between configuration and php files :  cp /etc/horde/gollem/prefs.php.dist /etc/horde/gollem/prefs.php  chown -R apache:apache /etc/horde/gollem/prefs.php  gedit /etc/horde/gollem/prefs.php

Change line require_once dirname(__FILE__) . '/../lib/Gollem.php'; by require_once '/usr/share/horde/gollem/lib/Gollem.php';


Modification of the php file of gollem to access file data :  cp /etc/horde/gollem/backends.php.dist /etc/horde/gollem/backends.php  chown -R apache:apache /etc/horde/gollem/backends.php  gedit /etc/horde/gollem/backends.php

A connection to data is made throw a “$backends”, so the first operation is to comment all the “$backends“ Add a first source to implement the file system $backends['file'] = array(

   'name' => 'Virtual Home Directories',
   'driver' => 'file',
   'preferred' => 'comp1.domain.com',
   'hordeauth' => false,
   'params' => array(
       // The base location under which the user home directories live.
       'vfsroot' => '/home/Horde_vf/',
       // The default permissions to set for newly created folders and files.
       // 'permissions' => $conf['umask']
   ),
   'loginparams' => array(),
   'root' => '/',
   'home' => Auth::getAuth(),
   // 'createhome' => false,
   // 'filter' => '^regex$',
   // 'quota' => false,
   'clipboard' => true,
   'attributes' => array('type', 'name', 'edit', 'download', 'modified', 'size', 'permission', 'owner', 'group')

);

Change if necessary your configuration the following value (http://127.0.0.1/horde/???)

Page Parameter name Value Comments File Manager backend/backend_list none Default File Manager foldercache/use_cache No Default Menu Settings menu/apps array() Default Users capabilities and constrains User/alternate_login false Default Users capabilities and constrains User/redirect_on_logout false Default

6.7. Passwd configuration

Passwd is a tool to allow user to change their password, configuration is done in two places, directly under horde/configuration, with administration account. and also in a specific file written in php to describe the LDAP connection

First get this module directly from horde website and install it (no rpm for it)  wget ftp://ftp.horde.org/pub/passwd/passwd-h3-3.1.3.tar.gz  tar -xvf passwd-h3-3.1.3.tar.gz  cd passwd-h3-3.1.3  mv config /etc/horde/passwd  chown -R apache:apache /etc/horde/passwd  chmod -R 770 /etc/horde/passwd  cd ..  mv passwd-h3-3.1.3 /usr/share/horde/passwd  cd /usr/share/horde/passwd  ln -s ../../../../etc/horde/passwd config

Modification of the php file of passwd to access the password database (LDAP) :  cp /etc/horde/passwd/backends.php.dist /etc/horde/passwd/backends.php  chown -R apache:apache /etc/horde/passwd/backends.php  gedit /etc/horde/passwd/backends.php

A connection to data is made throw a “$backends”, so the first operation is to comment all the “$backends“ Add a source to implement the password change (will be stored as LDAP) $backends['ldapadmin'] = array(

   'name' => 'LDAP Server',
   'preferred' => 'comp1.domain.com',
   'password policy' => array(
       'minLength' => 4,
       'maxLength' => 20
   ),
   'driver' => 'ldap',
   'params' => array(
       'host' => 'comp1.domain.com',
       'port' => 389,
       'basedn' => 'ou=People,dc=domain,dc=com',
       'admindn' => 'cn=Directory Manager',
       'adminpw' => 'Pass-389-dir-man',
       // LDAP object key attribute
       'uid' => 'uid',
       // these attributes will enable shadow password policies.
       // 'shadowlastchange' => 'shadowlastchange',
       // 'shadowmin' => 'shadowmin',
       'attribute' => 'userPassword',
       // this will be appended to the username when looking for the userdn.
       'realm' => ,
       // Use this filter when searching for the user's DN.
       'filter' => ,
       // Hash method to use when storing the password
       'encryption' => 'ssha',
   
       // Only applies to LDAP servers. If set, should be 0 or 1. See the LDAP 
       // documentation about the corresponding parameter REFERRALS.
       // Windows 2003 Server require to set this parameter to 0
       //'referrals' => 0,
       
       // Whether to enable TLS for this LDAP connection
       // Note: make sure the host matches cn in the server certificate
       'tls' => true
   )

);

Change if necessary your configuration the following value (http://127.0.0.1/horde/???)

Page Parameter name Value Comments menu menu/apps array() Default backend backend/backend_list 'hidden' Default user user/change true Default user user/refused array('root', 'bin', 'daemon', 'adm', 'lp', 'shutdown', 'halt', 'uucp', 'ftp', 'anonymous', 'nobody', 'httpd', 'operator', 'guest', 'diginext', 'bind', 'cyrus', 'courier', 'games', 'kmem', 'mailnull', 'man', 'mysql', 'news', 'postfix', 'sshd', 'tty', 'www', 'admin') Add the « admin » user password password/strengthtests false Default hooks hooks/full_name false Default hooks hooks/default_username false Default hooks hooks/username false Default hooks hooks/userdn false Default 6.8. Ansel configuration (H4) Ansel is a web-based photo manager, configuration is done in one places, directly under horde/configuration, with administration account.

First get this module directly from horde website and install it  wget ftp://ftp.horde.org/pub/ansel/ansel-h3-1.1.2.tar.gz  tar -xvf ansel-h3-1.1.2.tar.gz  cd ansel-h3-1.1.2  mv config /etc/horde/ansel  chown -R apache:apache /etc/horde/ansel  chmod -R 770 /etc/horde/ansel  cd ..  mv ansel-h3-1.1.2 /usr/share/horde/ansel  cd /usr/share/horde/ansel  ln -s ../../../../etc/horde/ansel config



Change if necessary your configuration the following value (http://127.0.0.1/horde/???)

Page Parameter name Value Comments General settings gallery/listlimit Default General settings gallery/numlimit Default General settings gallery/downloadzip true Default General settings gallery/customlabel true Default General settings menu/print true Default General settings menu/apps array('horde') Default VFS and photos options image/type Horde default Default VFS and photos options vfs/src 'php' Default VFS and photos options image/type 'jpeg' Default VFS and photos options image/autogen '5' Default VFS and photos options image/prettythumbs true Default VFS and photos options image/squaremini true Default VFS and photos options image/smartcrop false Default VFS and photos options image/tiny false Default VFS and photos options image/num_uploads '100' Default VFS and photos options image/font Default Thumbnail Settings thumbnail/perpage '30' Default Thumbnail Settings thumbnail/width '150' Default Thumbnail Settings thumbnail/height '150' Default Thumbnail Settings thumbnail/unsharp true Default Thumbnail Settings thumbnail/radius '0.7' Default Thumbnail Settings thumbnail/amount '1' Default Thumbnail Settings thumbnail/threshold ‘0.05’ Default Screen Image Settings screen/width '800' Default Screen Image Settings screen/height '600' Default Screen Image Settings screen/unsharp true Default Screen Image Settings screen/radius '0.5' Default Screen Image Settings screen/amount '1.2' Default Screen Image Settings screen/threshold ‘0.05’ Default Ecard Settings ecard/enable true Default Photo Comments comments/allow ‘Authenticated user’ Default Cache Settings ansel_cache/usecache false Default Tag Settings tags/relatedtags false Default Content Reporting Settings report_content/driver false Default Age settings ages/limits ‘’ Default Age settings ages/hook false Default Face Detection faces/driver ‘manuel detection of user’ Default Face Detection faces/search '7' Default

Add the sql schema for Ansel in the database First get this module directly from horde website and install it  cd /usr/share/horde/  ./bin/db_migrate ansel


6.9. Mnemo configuration

Mnemo is a web-based note, configuration is done directly under horde/configuration, with administration account. But you need first to add the correct field in the SQL database

First get this module directly from horde website and install it (no rpm for it)  wget ftp://ftp.horde.org/pub/mnemo/mnemo-h3-2.2.4.tar.gz  tar -xvf mnemo-h3-2.2.4.tar.gz  cd mnemo-h3-2.2.4  mv config /etc/horde/mnemo  chown -R apache:apache /etc/horde/mnemo  chmod -R 770 /etc/horde/mnemo  cd ..  mv mnemo-h3-2.2.4 /usr/share/horde/mnemo  cd /usr/share/horde/mnemo  ln -s ../../../../etc/horde/mnemo config

Modification of the php file of mnemo to correct the link between configuration and php files :  cp /etc/horde/mnemo/prefs.php.dist /etc/horde/mnemo/prefs.php  chown -R apache:apache /etc/horde/mnemo/prefs.php  gedit /etc/horde/mnemo/prefs.php

Change line require_once dirname(__FILE__) . '/../lib/Mnemo.php'; by require_once '/usr/share/horde/mnemo/lib/Mnemo.php';

Add the field in the SQL database :  cd /usr/share/horde/mnemo/scripts/sql/  mysql -u root -p horde <mnemo.sql Used password : “Pass-mySql“.

Change if necessary your configuration the following value (http://127.0.0.1/horde/???) 127.0.0.1/horde/???

Page Parameter name Value Comments Generate Notes storage/params/table mnemo_memos Default Generate Notes storage/params/driverconfig Horde Default Generate Notes storage/driver sql Default Generate Notes utils/gnupg Default Generate Notes menu/print true Default Generate Notes menu/import_export true Default Generate Notes menu/apps array() Default




6.10. MIMP configuration

MIMP is a special configuration of imp for mobile phone

First get this module directly from horde website and install it (no rpm for it)  wget ftp://ftp.horde.org/pub/mimp/mimp-h3-1.1.3.tar.gz  tar -xvf mimp-h3-1.1.3.tar.gz  cd mimp-h3-1.1.3  mv config /etc/horde/mimp  chown -R apache:apache /etc/horde/mimp  chmod -R 770 /etc/horde/mimp  cd ..  mv mimp-h3-1.1.3 /usr/share/horde/mimp  cd /usr/share/horde/mimp  ln -s ../../../../etc/horde/mimp config

Change if necessary your configuration the following value (http://127.0.0.1/horde/???) 127.0.0.1/horde/???

Page Parameter name Value Comments Mailbox Settings mailbox/max_from_chars 10 Default Mailbox Settings mailbox/max_subj_chars 20 Default




6.11. trean configuration

trean is a Bookmarks managers , configuration is done directly under horde/configuration, with administration account. But you need first to add the correct field in the SQL database

First get this module directly from horde website and install it (no rpm for it)  wget ftp://ftp.horde.org/pub/snaps/latest/trean-FRAMEWORK_3*.tar.gz  tar -xvf trean-FRAMEWORK_3*.tar.gz  cd trean-FRAMEWORK_3  mv config /etc/horde/trean  chown -R apache:apache /etc/horde/trean  chmod -R 770 /etc/horde/trean  cd ..  mv trean-FRAMEWORK_3 /usr/share/horde/trean  cd /usr/share/horde/trean  ln -s ../../../../etc/horde/trean config

Modification of the php file of horde to add this application in the horde database :  gedit /etc/horde/registry.php

Change line $this->applications['trean'] = array(

   'fileroot' => FEDORA_FILEROOT . '/trean',
   'webroot' => $this->applications['horde']['webroot'] . '/trean',
   'name' => _("Bookmarks"),
   'status' => 'inactive',
   'provides' => 'bookmarks',
   'menu_parent' => 'organizing'

);

by $this->applications['ansel'] = array(

   'fileroot' => FEDORA_FILEROOT . '/ansel',
   'webroot' => $this->applications['horde']['webroot'] . '/ansel',
   'name' => _("Photos"),
   'status' => 'active',
   'provides' => 'images',
   'menu_parent' => 'website'

); $this->applications['trean'] = array(

   'fileroot' => FEDORA_FILEROOT . '/trean',
   'webroot' => $this->applications['horde']['webroot'] . '/trean',
   'name' => _("Bookmarks"),
   'status' => 'active',
   'provides' => 'bookmarks',
   'menu_parent' => 'organizing'

);


Add the field in the SQL database :  cd /usr/share/horde/trean/scripts/sql/  mysql -u root -p horde <trean.sql Used password : “Pass-mySql“.

Change if necessary your configuration the following value (http://127.0.0.1/horde/???) 127.0.0.1/horde/???

Page Parameter name Value Comments Menu settings Menu/mport_export Yes Default Menu settings Menu/apps list Default Virtual File Storage Favicons/type Sql We want to use SQL, yes Virtual File Storage Favicons/params/driverconfig Horde Default




(TBD)