[horde] Upgrade Horde 3.1.x to 3.3.x

Michael Rhyner michael.rhyner at medianet.ch
Fri Oct 8 17:41:01 UTC 2010


Dear Horde Community,

We have trouble with the update script "2008-08-29_fix_mdb2_sequences.php"
upgrdading data suiting newly installed versions from:
horde 3.1.x to 3.3.x
imp 4.1.x to 4.3.x
ingo 1.1.2 to 1.2.4
kronolith 2.1.x to 2.3.x
mnemo 2.1.1 to 2.3.4
turba 2.1.x to 2.3.x

First of all, possibly a simple question for someone of you (I'm not
experienced in OOP ;-(): Is this script only manipulating the database
scheme or changing some data within the tables, or even some files outside
the database? So do we have to run this script at all? I'm asking because in
Horde 3.1 etc. there weren’t tables like turba_shares or kronolith_shares.

The problem is, that the script always returns the following result printed
in red colour:
====================

Fatal Error:
MDB2 Error: not found

====================

I analyzed the problem a bit and saw that the message came from the
instantiating of an Object “$db” of the MDB2::factory class. So I inserted a
var_dump command after the line
$db = &MDB2::factory($config);
echo var_dump($db) . "\n";

Within the trace, I found the following line multiple times:
string(99) "unable to find package 'MDB2_Driver_MDB2_Driver_mysql: ' file
'MDB2/Driver/MDB2/Driver/mysql: .php'"

My horde framework configuration file config/conf.php (some sensitive values
hidden):
<?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Horde: horde/config/conf.xml,v 1.74.2.89 2010/04/21 08:02:24 jan Exp $
$conf['vhosts'] = false;
$conf['debug_level'] = E_ALL & ~E_NOTICE;
$conf['max_exec_time'] = 0;
$conf['compress_pages'] = true;
$conf['secret_key'] = '****************************************';
$conf['umask'] = 077;
$conf['tmpdir'] = '/var/cache/horde';
$conf['use_ssl'] = 2;
$conf['server']['name'] = $_SERVER['SERVER_NAME'];
$conf['server']['port'] = $_SERVER['SERVER_PORT'];
$conf['urls']['token_lifetime'] = 30;
$conf['urls']['hmac_lifetime'] = 30;
$conf['urls']['pretty'] = false;
$conf['safe_ips'] = array();
$conf['session']['name'] = 'Horde';
$conf['session']['use_only_cookies'] = true;
$conf['session']['cache_limiter'] = 'nocache';
$conf['session']['timeout'] = 0;
$conf['cookie']['domain'] = $_SERVER['SERVER_NAME'];
$conf['cookie']['path'] = '/horde';
$conf['sql']['persistent'] = true;
$conf['sql']['username'] = 'horde';
$conf['sql']['password'] = '**********';
$conf['sql']['hostspec'] = 'localhost';
$conf['sql']['port'] = 3306;
$conf['sql']['protocol'] = 'tcp';
$conf['sql']['database'] = 'horde';
$conf['sql']['charset'] = 'utf-8';
$conf['sql']['ssl'] = false;
$conf['sql']['splitread'] = false;
$conf['sql']['phptype'] = 'mysql';
$conf['auth']['admins'] = array('*************');
$conf['auth']['checkip'] = true;
$conf['auth']['checkbrowser'] = true;
$conf['auth']['alternate_login'] = false;
$conf['auth']['redirect_on_logout'] = false;
$conf['auth']['list_users'] = 'list';
$conf['auth']['params']['app'] = 'imp';
$conf['auth']['driver'] = 'application';
$conf['signup']['allow'] = false;
$conf['log']['priority'] = PEAR_LOG_NOTICE;
$conf['log']['ident'] = 'HORDE';
$conf['log']['params'] = array();
$conf['log']['name'] = '/var/log/horde.log';
$conf['log']['params']['append'] = true;
$conf['log']['type'] = 'file';
$conf['log']['enabled'] = true;
$conf['log_accesskeys'] = false;
$conf['prefs']['params']['driverconfig'] = 'horde';
$conf['prefs']['driver'] = 'sql';
$conf['alarms']['params']['driverconfig'] = 'horde';
$conf['alarms']['params']['ttl'] = 300;
$conf['alarms']['driver'] = 'sql';
$conf['datatree']['params']['driverconfig'] = 'horde';
$conf['datatree']['driver'] = 'sql';
$conf['group']['driverconfig'] = 'horde';
$conf['group']['driver'] = 'sql';
$conf['group']['cache'] = false;
$conf['perms']['driverconfig'] = 'horde';
$conf['perms']['driver'] = 'sql';
$conf['share']['no_sharing'] = false;
$conf['share']['any_group'] = false;
$conf['share']['cache'] = false;
$conf['share']['driver'] = 'datatree';
$conf['cache']['default_lifetime'] = 86400;
$conf['cache']['params']['sub'] = 0;
$conf['cache']['driver'] = 'file';
$conf['lock']['params']['driverconfig'] = 'horde';
$conf['lock']['driver'] = 'sql';
$conf['token']['params']['driverconfig'] = 'horde';
$conf['token']['driver'] = 'sql';
$conf['mailer']['params']['host'] = 'smtp.zapponline.ch';
$conf['mailer']['params']['port'] = 25;
$conf['mailer']['params']['localhost'] = 'mail.zapponline.ch';
$conf['mailer']['params']['auth'] = 'PLAIN';
$conf['mailer']['params']['username'] = 'postmaster at zapp.ch';
$conf['mailer']['params']['password'] = '***************';
$conf['mailer']['type'] = 'smtp';
$conf['mailformat']['brokenrfc2231'] = false;
$conf['vfs']['params']['driverconfig'] = 'horde';
$conf['vfs']['type'] = 'sql';
$conf['sessionhandler']['type'] = 'none';
$conf['sessionhandler']['memcache'] = false;
$conf['mime']['magic_db'] = '/usr/share/file/magic.mime';
$conf['geoip']['datafile'] = '/var/www/horde/GeoIPCountryWhois.csv';
$conf['problems']['email'] = 'support at zapp.ch';
$conf['problems']['maildomain'] = 'zapp.ch';
$conf['problems']['tickets'] = false;
$conf['problems']['attachments'] = true;
$conf['menu']['apps'] = array();
$conf['menu']['always'] = false;
$conf['menu']['links']['help'] = 'all';
$conf['menu']['links']['options'] = 'authenticated';
$conf['menu']['links']['problem'] = 'all';
$conf['menu']['links']['login'] = 'all';
$conf['menu']['links']['logout'] = 'authenticated';
$conf['logo']['image'] = '/horde/themes/zappklein.jpg';
$conf['logo']['link'] = 'http://www.zapp.ch';
$conf['hooks']['permsdenied'] = false;
$conf['hooks']['username'] = false;
$conf['hooks']['preauthenticate'] = false;
$conf['hooks']['postauthenticate'] = false;
$conf['hooks']['authldap'] = false;
$conf['hooks']['groupldap'] = false;
$conf['portal']['fixed_blocks'] = array();
$conf['accounts']['driver'] = 'null';
$conf['user']['verify_from_addr'] = false;
$conf['imsp']['enabled'] = false;
$conf['kolab']['enabled'] = false;
$conf['memcache']['enabled'] = false;
/* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

/horde/test.php outputs the following:
Horde Version
• Horde: 3.3.8
Horde Applications
• Forwards: H3 (3.2.1)
• Gollem: H3 (1.1.1) (run Gollem tests)
• Horde: 3.3.8
• Imp: H3 (4.3.7) (run Imp tests)
• Ingo: H3 (1.2.4) (run Ingo tests)
• Kronolith: H3 (2.3.4) (run Kronolith tests)
• Mnemo: H3 (2.2.3)
• Nag: H3 (2.3.5)
• Passwd: H3 (3.1.3) (run Passwd tests)
• Turba: H3 (2.3.4) (run Turba tests)
PHP Version
• View phpinfo() screen
• View loaded extensions
• PHP Version: 5.3.2-2
• PHP Major Version: 5.3
• PHP Minor Version: 2
• PHP Subminor Version: 2
• PHP Version Classification: release
• This version of PHP has not been fully tested with this version of Horde.
PHP Module Capabilities
• Ctype Support: Yes
• DOM XML Support: Yes
• FTP Support: Yes
• GD Support: Yes
• Gettext Support: Yes
• GeoIP Support (via PECL extension): No
Horde can optionally use the GeoIP extension to provide faster country name
lookups. 
• Iconv Support: Yes
• GNU Iconv Support: Yes
• IMAP Support: Yes
• Imagick Library: Yes
• JSON Support: Yes
• LDAP Support: No
LDAP support is only required if you want to use an LDAP server for anything
like authentication, address books, or preference storage. 
• LZF Compression Support: No
If the lzf PECL module is available, Horde can compress some cached data in
your session to make your session size smaller. 
• Mbstring Support: Yes
• PCRE Support: Yes
• PCRE UTF-8 Support: Yes
• Mcrypt Support: Yes
• memcached Support (memcache): No
The memcache PECL module is only needed if you are using a memcached server
for caching or sessions. See horde/docs/INSTALL for information on how to
install PECL/PHP extensions. 
• MIME Magic Support (fileinfo): Yes
• 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. 
• MySQL Support: Yes
• OpenSSL Support: Yes
• PostgreSQL Support: No
The PostgreSQL extension is only required if you want to use a PostgreSQL
database server for data storage. 
• Session Support: Yes
• XML Support: Yes
• Zlib Support: Yes
Miscellaneous PHP Settings
• magic_quotes_runtime disabled: Yes
• memory_limit value: 128M
If PHP's internal memory limit is not set high enough Horde will not be able
to handle large data items (e.g. large mail attachments in IMP). You should
set the value of memory_limit in php.ini to a sufficiently high value - at
least 64M is recommended. 
• safe_mode disabled: Yes
• session.use_trans_sid disabled: Yes
• session.auto_start disabled: Yes
• zlib.output_compression disabled: Yes
• zend_accelerator.compress_all disabled: Yes
File Uploads
• file_uploads enabled: Yes
• upload_max_filesize: 12M
• post_max_size: 30M
This value should be several times the expect largest upload size
(notwithstanding any upload limits present in an application). Any upload
that exceeds this size will cause any state information sent along with the
uploaded data to be lost. This is a PHP limitation and can not be worked
around.
Required Horde Configuration Files
• config/conf.php: Yes
• config/mime_drivers.php: Yes
• config/nls.php: Yes
• config/prefs.php: Yes
• config/registry.php: Yes
PHP Sessions
• Session counter: 1
• To unregister the session: click here
PEAR
• PEAR Search Path (PHP's include_path):
 /var/www/horde/lib:.:/usr/share/php:/usr/share/pear
• PEAR: Yes
• Recent PEAR: Yes
• Mail: Yes
• Mail_Mime: Yes
• Mail_mimeDecode: Yes
• Log: Yes
• DB: Yes
• MDB2: Yes
• Net_Socket: Yes
• Date: Yes
• Auth_SASL: Yes
• HTTP_Request: Yes
• HTTP_WebDAV_Server: Yes
• Net_SMTP: Yes
• Services_Weather: Yes
• Cache: Yes
• XML_Serializer: Yes
• Net_DNS: Yes

The root cause to stick on running this script is mainly (besides concern
not being able to do further upgrades) that preference settings like
Identity Description, From Address, Signatures, etc. weren't visible to
users after upgrading the databases. All other data like address books,
calendar entries, et.c were ok as it seems...

And, by the way: Is Horde 3.3.8 running/tested on PHP 5.3.x at all? I was
forced to upgrade today from PHP 5.2.x due to dependencies caused by the
above mentioned script (2008-08-29_fix_mdb2_sequences.php). It seems that
many deprecated functions/features are used...

Many thanks in advanced!

Best Regards,

Michael Rhyner
System Engineer

ZAPP AG
Bahnhofstr. 28, 3076 Worb
Telefon +41 31 710 34 23
Fax     +41 31 710 34 25
michael.rhyner at medianet.ch
http://www.zapp.ch




More information about the horde mailing list