Search:  
Gentoo Wiki

Webmail_Client_Installation

This article is part of the HOWTO series.
Installation Kernel & Hardware Networks Portage Software System X Server Gaming Non-x86 Emulators Misc
This page is a candidate for deletion 
Reason given: Entire article series:
If you disagree with its deletion, please explain why on its discussion page.
If you intend to fix it, please remove this notice, but do not remove this notice from articles that you have created yourself.
Make sure no other pages link here and check the page's history before deleting.

This article is still a Stub. You can help Gentoo-Wiki by expanding it.


HOWTO The Home Network for Beginners


Contents

Pitfalls

The biggest pitfall you're about to encounter is permissions. Before trying to do anything via the web interface, make sure that all of the files and directories are owned by apache:apache and have suitable permissions (I use 774, but this doesn't mean you have to). You'd do something like this before using the web interface:

# chmod -R 774 /var/www/localhost/htdocs/mail/
# chown -R apache:apache /var/www/localhost/htdocs/mail/

Also, keep in mind that "localhost" and "mail" should be replaced with the desired virtual host and directory name, if you want to change them.

Testing

All of the modules that plug into the Horde Application Framework (as well as Horde itself) have a test page. You can run it at http://localhost/mail/<module name>/test.php. It will let you know if you're missing any libraries or anything. (to test Horde, go to http://localhost/mail/test.php)

Installing Horde Application Framework

# echo "www-apps/horde" >> /etc/portage/package.keywords
# emerge horde
# webapp-config -I -h localhost -d mail horde VERSION

This will install horde and put it in the mail directory of the localhost virtual host.

# cd /var/www/localhost/htdocs/mail/config
# for f in *.dist; do cp $f `basename $f .dist`; done

Horde suffixes all config files with .dist; this command removed it.

# nano -w /var/www/localhost/htdocs/mail/scripts/sql/create.mysql.sql

This file will already exist and is heavily commented. Change what it asks you to do and/or for your environment.

# mysql -u root -p < /var/www/localhost/htdocs/mail/scripts/sql/create.mysql.sql

Enter your MySQL root password. This will import the SQL you just edited.

# cd /var/www/localhost/htdocs/mail/scripts
# php setup.php

If this returns "is accessible" for all of the files it checks, you're good to continue. Otherwise, please make sure you ran the for f in *.dist stuff.

Next, emerge the following optional package, if you want (if you're using PHP4, replace php5 with php4):

# emerge dev-php5/pecl-fileinfo

Now, go to http://localhost/mail/. You'll be logged in. Go to Administration and set up your Horde! If you want to setup IMAP authentication over SSL, use a connection string of {localhost:993/imap/ssl/novalidate-cert}

Installing Horde IMP Webmail Client

# echo "www-apps/horde-imp" >> /etc/portage/package.keywords
# emerge horde-imp

If this went well, Horde IMP is now installed! Now, to add it to our virtual host. It needs to go below the main Horde directory.

# webapp-config -I -h localhost -d mail/imp horde-imp VERSION
# cd /var/www/localhost/htdocs/mail/imp/config/
# for f in *.dist; do cp $f `basename $f .dist`; done

Again, this just makes the config files usable.

# nano -w servers.php

Edit this file to match your configuration.

Go to http://localhost/mail/, go to Setup, and you'll now see IMP there. Configure IMP as needed.

Installing Horde Turba Contact Manager

# echo "www-apps/horde-turba" >> /etc/portage/package.keywords
# emerge horde-turba
# webapp-config -I -h localhost -d mail/turba horde-turba VERSION

This will put the Turba contact manager inside your existing Horde installation.

# mysql -u root -p horde < /var/www/localhost/htdocs/mail/turba/scripts/sql/turba_objects.mysql.sql

You didn't need to make any SQL changes, so import the SQL they want you to import. Make sure you include "horde", or else MySQL won't know what database to put it into!

# cd /var/www/localhost/htdocs/mail/turba/config
# for f in *.dist; do cp $f `basename $f .dist`; done

Again, this makes the config files available for editing. Remember to chmod and chown! :)

Go to http://localhost/mail/ and go back to setup, and configure Turba now.

Installing Horde Passsword Changer

# echo "www-apps/horde-passwd" >> /etc/portage/package.keywords
# emerge horde-passwd
# webapp-config -I -h localhost -d mail/passwd horde-passwd VERSION

It's now installed inside of Horde.

# cd /var/www/localhost/htdocs/mail/passwd/config
# for f in *.dist; do cp $f `basename $f .dist`; done

Now, edit backends.php in the config directory to match your setup (read the comments). After that, go to http://localhost/mail/ and continue setting it up.

Installing Horde Ingo Email Filter Rules Manager

# echo "www-apps/horde-ingo" >> /etc/portage/package.keywords
# emerge horde-ingo
# webapp-config -I -h localhost -d mail/ingo horde-ingo VERSION
# cd ingo/config
# for f in *.dist; do cp $f `basename $f .dist`; done
# nano -w conf.php
File: /var/www/localhost/htdocs/mail/ingo/config/conf.php
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: ingo/config/conf.xml,v 1.13 2004/02/11 19:24:23 slusarz Exp $
$conf['menu']['apps'] = array('imp');
$conf['storage']['driver'] = 'prefs';
$conf['storage']['maxblacklist'] = 0;
$conf['storage']['maxwhitelist'] = 0;
$conf['rules']['userheader'] = true;
$conf['rules']['usefolderapi'] = true;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
# chown apache:apache conf.php
# cd ..
# chmod 644 test.php
# rm test.php
# cd ..

Installing Horde Kronolith Calendar Application

# echo "www-apps/horde-kronolith" >> /etc/portage/package.keywords
# emerge horde-kronolith
# webapp-config -I -h localhost -d mail/kronolith horde-kronolith VERSION
# nano -w kronolith/scripts/sql/kronolith.mysql.sql
File: /var/www/localhost/htdocs/mail/kronolith/scripts/sql/kronolith.mysql.sql
USE horde;

CREATE TABLE kronolith_events (
    event_id VARCHAR(32) NOT NULL,
    event_uid VARCHAR(255) NOT NULL,
    calendar_id VARCHAR(255) NOT NULL,
    event_creator_id VARCHAR(255) NOT NULL,
    event_description TEXT,
    event_location TEXT,
    event_status INT DEFAULT 0,
    event_attendees TEXT,
    event_keywords TEXT,
    event_exceptions TEXT,
    event_title VARCHAR(255),
    event_category VARCHAR(80),
    event_recurtype VARCHAR(11) DEFAULT 0,
    event_recurinterval VARCHAR(11),
    event_recurdays VARCHAR(11),
    event_recurenddate DATETIME,
    event_start DATETIME,
    event_end DATETIME,
    event_alarm INT DEFAULT 0,
    event_modified INT NOT NULL,

    PRIMARY KEY (event_id)
);

CREATE INDEX kronolith_calendar_idx ON kronolith_events (calendar_id);
CREATE INDEX kronolith_uid_idx ON kronolith_events (event_uid);

GRANT SELECT, INSERT, UPDATE, DELETE ON kronolith_events TO horde@localhost;


CREATE TABLE kronolith_storage (
    vfb_owner      VARCHAR(255) DEFAULT NULL,
    vfb_email      VARCHAR(255) NOT NULL DEFAULT '',
    vfb_serialized TEXT NOT NULL
);

CREATE INDEX kronolith_vfb_owner_idx ON kronolith_storage (vfb_owner);
CREATE INDEX kronolith_vfb_email_idx ON kronolith_storage (vfb_email);

GRANT SELECT, INSERT, UPDATE, DELETE ON kronolith_storage TO horde@localhost;

FLUSH PRIVILEGES;

-- Done!
# mysql -u root -p < kronolith/scripts/sql/kronolith.mysql.sql
# cd kronolith/config
# for foo in *.dist; do cp $foo `basename $foo .dist`; done
# nano -w conf.php
File: /var/www/localhost/htdocs/mail/kronolith/config/conf.php
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: kronolith/config/conf.xml,v 1.14.10.1 2005/03/04 04:04:31 ben Exp $
$conf['calendar']['params']['table'] = 'kronolith_events';
$conf['calendar']['params']['driverconfig'] = 'horde';
$conf['calendar']['driver'] = 'sql';
$conf['storage']['params']['table'] = 'kronolith_storage';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['metadata']['keywords'] = false;
$conf['reminder']['server_name'] = 'localhost';
$conf['reminder']['from_addr'] = 'root@localhost';
$conf['menu']['print'] = false;
$conf['menu']['import_export'] = false;
$conf['menu']['apps'] = array('imp');
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
# chown apache:apache conf.php
# cd ../..

Installing Horde Mnemo Note Manager

# echo "www-apps/horde-mnemo" >> /etc/portage/package.keywords
# emerge horde-mnemo
# webapp-config -I -h localhost -d mail/mnemo horde-mnemo VERSION
# nano -w mnemo/scripts/sql/mnemo.mysql.sql
File: /var/www/localhost/htdocs/mail/mnemo/scripts/sql/mnemo.mysql.sql
USE horde;

CREATE TABLE mnemo_memos (
    memo_owner      VARCHAR(255) NOT NULL,
    memo_id         VARCHAR(32) NOT NULL,
    memo_uid        VARCHAR(255) NOT NULL,
    memo_desc       VARCHAR(64) NOT NULL,
    memo_body       TEXT,
    memo_category   VARCHAR(80),
    memo_private    SMALLINT NOT NULL DEFAULT 0,
--
    PRIMARY KEY (memo_owner, memo_id)
);

CREATE INDEX mnemo_notepad_idx ON mnemo_memos (memo_owner);
CREATE INDEX mnemo_uid_idx ON mnemo_memos (memo_uid);

GRANT SELECT, INSERT, UPDATE, DELETE ON mnemo_memos TO horde@localhost;

FLUSH PRIVILEGES;

-- Done!
# mysql -u root -p < mnemo/scripts/sql/mnemo.mysql.sql
# cd mnemo/config
# for foo in *.dist; do cp $foo `basename $foo .dist`; done
# nano -w conf.php
File: /var/www/localhost/htdocs/mail/mnemo/config/conf.php
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: mnemo/config/conf.xml,v 1.17 2004/10/03 13:07:37 stuart Exp $
$conf['storage']['params']['table'] = 'mnemo_memos';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['menu']['print'] = false;
$conf['menu']['import_export'] = false;
$conf['menu']['apps'] = array('imp');
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
# chown apache:apache conf.php
# cd ../..

Installing Horde Nag Task Manager

# echo "www-apps/horde-nag" >> /etc/portage/package.keywords
# emerge horde-nag
# webapp-config -I -h localhost -d mail/nag horde-nag VERSION
# nano -w nag/scripts/sql/nag.mysql.sql
File: /var/www/localhost/htdocs/mail/nag/scripts/sql/nag.mysql.sql
USE horde;

CREATE TABLE nag_tasks (
    task_id         VARCHAR(32) NOT NULL,
    task_owner      VARCHAR(255) NOT NULL,
    task_name       VARCHAR(64) NOT NULL,
    task_uid        VARCHAR(255) NOT NULL,
    task_desc       TEXT,
    task_due        INT,
    task_priority   INT NOT NULL DEFAULT 0,
    task_category   VARCHAR(80),
    task_completed  SMALLINT NOT NULL DEFAULT 0,
    task_alarm      INT NOT NULL DEFAULT 0,
    task_private    INT NOT NULL DEFAULT 0,
--
    PRIMARY KEY (task_id)
);

CREATE INDEX nag_tasklist_idx ON nag_tasks (task_owner);
CREATE INDEX nag_uid_idx ON nag_tasks (task_uid);

GRANT SELECT, INSERT, UPDATE, DELETE ON nag_tasks TO horde@localhost;

FLUSH PRIVILEGES;

-- Done!
# mysql -u root -p < nag/scripts/sql/nag.mysql.sql
# cd nag/config
# for foo in *.dist; do cp $foo `basename $foo .dist`; done
# nano -w conf.php
File: /var/www/localhost/htdocs/mail/nag/config/conf.php
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: nag/config/conf.xml,v 1.25 2004/10/03 13:23:28 stuart Exp $
$conf['storage']['params']['table'] = 'nag_tasks';
$conf['storage']['params']['driverconfig'] = 'horde';
$conf['storage']['driver'] = 'sql';
$conf['menu']['print'] = false;
$conf['menu']['import_export'] = false;
$conf['menu']['apps'] = array('imp');
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
# chown apache:apache conf.php
# cd ../..
# nano -w /etc/portage/package.keywords
File: /etc/portage/package.keywords
www-apps/horde ~x86
www-apps/horde-mnemo ~x86
www-apps/horde-turba ~x86
www-apps/horde-nag ~x86
www-apps/horde-imp ~x86
www-apps/horde-kronolith ~x86
www-apps/horde-passwd  ~x86

Last modified: Sat, 09 Aug 2008 04:49:00 +0000 Hits: 15,543