HOWTO: Installing standard Gollem H3 (1.0) for Horde on a Plesk 7.5.3 Server
- Written by: James Yee on Oct 8, 2005
Assumptions:
Your OS is a RedHat flavor (not FreeBSD, Suse, Debian, etc)
Your docroots are located in /home/httpd/vhosts/...
You have the directory /etc/psa-horde which contains directories for horde, imp, etc
Your Horde, Imp, Turba, Kronolith, Ingo, whatever Horde modules are Plesk or ART versions
without other modifications which may mess things up.
Disclaimers:
This has not yet been tested on Plesk 7.5.4 (please let me know if it works on 7.5.4)
These instructions work on my servers, use entirely at your own risk,
I assume zero liability if it breaks your server. Especially since there have been so many forum
users who (for whatever reason) cannot seem to read examples and follow them properly, who insist
on changing things their own way without even trying the examples posted 'as-is' before trying
to modify it 'their own way' and ending up having to post many more times because they didn't
follow the example in the first place!!!!
Horde modules versions used during this testing:
psa-horde-3.0.5
psa-imp-4.0.3
psa-turba-2.0.3
psa-mnemo-2.0.1
psa-ingo-1.0.1
psa-kronolith-2.0.3
(Note: you may or may not have installed all of these, or you may have others I do not use)
1. Upgrade the Horde Framework to the (current) latest version 3.05 (use ART's yum channels)
I do a check-update first just to make sure...
And while I'm at it, might as well upgrade the other Horde modules at the same time
yum check-update psa-horde
yum update psa-horde psa-imp psa-ingo psa-kronolith psa-mnemo psa-turba
2. Download and unpack the Gollem package to a directory
Pretty much follow their instructions to download and unpack the files, or
cd /path/to/where/you/want/the/download/to/be/stored
wget [url]ftp://ftp.horde.org/pub/gollem/gollem-h3-1.0.tar.gz[/url]
cd /usr/share/psa-horde
tar zxvf /path/to/gollem-h3-1.0.tar.gz
3. Move and rename this directory to /usr/share/psa-horde/gollem
It is important that the final destination be named 'gollem' (case sensitive)
mv gollem-h3-1.0 gollem
and would then find gollem at the URL:
[url]http://your-server.tld/horde/gollem/[/url]
4. Create the /gollem/config/ files from their *.dist files
cd /usr/share/psa-horde/gollem/config
for foo in *.dist; do cp $foo `basename $foo .dist`; done
5. Create Plesk HARDLINKs to Horde module config files:
( /etc/psa-horde/gollem/* --> /usr/share/psa-horde/gollem/config/* )
mkdir -p /etc/psa-horde/gollem/config
ln -dv /usr/share/psa-horde/gollem/* /etc/psa-horde/gollem/config
6. Due to how Plesk has the Horde registry.php file setup to automatically register Horde
modules, you have to create a 'gollem.php' file in /etc/psa-horde/horde/registry.d/
<?php
$this->applications['gollem'] = array(
'fileroot' => dirname(__FILE__) . '/gollem',
'webroot' => $this->applications['horde']['webroot'] . '/gollem',
'name' => _("File Manager"),
'status' => 'active',
'provides' => 'files',
);
$this->applications['gollem-menu'] = array(
'status' => 'block',
'app' => 'gollem',
'blockname' => 'tree_menu',
'menu_parent' => 'gollem',
);
Sidenote:
hmmm, 'fileroot' also works as: 'fileroot' => $this->applications['horde']['fileroot'] . '/gollem',
7. Create the Gollem conf.php file in /usr/share/psa-horde/gollem/config
- found an example on the net...
- that way you don't have to mess with trying to do the Horde Admin Login procedure
to create the file... The only thing you may want to change is the date format.
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: gollem/config/conf.php,v 1.4 2004/04/02 18:41:18 chuck Exp $
$conf['manager']['date_format'] = '%x';
$conf['menu']['apps'] = array();
$conf['backend']['backend_list'] = 'hidden';
$conf['backend']['change_server'] = false;
$conf['backend']['change_port'] = false;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
8. Now when you login to Horde, it should show you an entry on the left menu 'File Manager'
When you click on it, it will bring you to the FTP login screen.
9. Now fill in the Hostname, Username, Password and it will then show you a listing of the
directories of that FTP user's home dir, normally /home/httpd/vhosts/domain.tld/
The Hostname can be any ftp server hostname, does not have to be hosted on the current
Plesk server.
10. Have to play with the settings in /usr/share/psa-horde/gollem/config/backends.php
Comment out all other backend examples except the first one.
Modify the first one like this: (see the lines beginning with // JY - PLESK: )
======================= Sample of backends.php file ================================================
// FTP Example.
$backends['ftp'] = array(
'name' => 'FTP Server',
'driver' => 'ftp',
'preferred' => '',
'hordeauth' => false,
'params' => array(
// JY - PLESK: The hostname/IP Address of the FTP server, leave blank and uncomment 'hostspec' below
'hostspec' => '',
// The port number of the FTP server
'port' => 21,
// Use passive mode?
'pasv' => false,
// Set timeout (in seconds) for the FTP server. Default: 90 seconds
// 'timeout' => 90,
// If true and the POSIX extension is available the driver will map
// the user and group IDs returned from the FTP server with the local
// IDs from the local password file. This is useful only if the FTP
// server is running on localhost or if the local user/group
// IDs are identical to the remote FTP server.
// JY - PLESK: Leave this commented out, else they would have to already have a user directory
// in /home/httpd/username, if they do not and you uncomment this, they will see a listing from
// the root directory!!!
// 'maplocalids' => true
),
'loginparams' => array(
// Allow the user to change the FTP server
// JY - PLESK: This will show an input line above the login name for them to type in the ftp server name
// like domain.tld or [url]www.domain.tld[/url]
'hostspec' => 'Hostname',
// Allow the user to change the FTP port
// If you uncomment the following line, they will be able to specify a port number
// 'port' => 'Port'
),
// JY - PLESK: Leave the following 4 lines commented out
// 'root' => '',
// 'home' => '',
// 'createhome' => false,
// 'filter' => '^regex$',
'attributes' => array('type', 'name', 'download', 'modified', 'size', 'permission', 'owner', 'group')
);
======================= End of Sample of backends.php file ================================================
11. MAKE SURE YOU HAVE COMMENTED OUT THE OTHER BACKENDS SAMPLES WHICH THEY PROVIDE, unless you want to play
with those yourself.
12. Now save all changes, you do not have to restart any services.
13. Login to your webmail, and assuming you have Horde setup to show you the left column menu,
you should now see 'File Manager' as an option in the list.
14. Click on File Manager and fill in Hostname, Username, Password
15. You should now be looking at the file/directory list on the FTP server which your username
is allowed to see, which for most Plesk created ftp users is the domain's root
/home/httpd/vhosts/domain.tld/
Hope this helps anyone who wants to use this (IMO silly Horde utility) on a Plesk 7.5.3+ server.
If you have any constructive/positive comments or find any typos, please let me know and I will
update this HOWTO and repost.
James Yee (jamesyeeoc @ yahoo . com)