Page tree
Skip to end of metadata
Go to start of metadata

Note:

There are significant changes to Horde's behavior between cPanel & WHM version 11.48 to 11.50. Click the tab below that corresponds with your version of cPanel & WHM.

 

 

Overview

In cPanel & WHM version 11.42, we upgraded the cPanel-provided version of the Horde webmail application to Horde Groupware Webmail Edition 5.1.1. We will package and distribute this and all future updates to Horde as RPMs to ensure consistent installation and updates.

As a result, the way in which Horde data behaves on a cPanel & WHM server has undergone several changes. This guide details the changes that the system makes when you upgrade from Horde Webmail 1.2, as well as the new behavior after you upgrade.

Upgrades from Horde 1.2

The upgrade from Horde 1.2 to Horde 5.1.1 performs various actions in addition to RPM installation. Your server's webmail application settings determine which steps the upgrade takes.

If you enabled Horde on your cPanel & WHM version 11.40 server, the upgrade will perform the following actions:

  1. The system backs up and stores any old Horde configurations in the following locations:
    • As a tarball in the /var/cpanel/horde/horde_1.2_config.tar.gz file.
    • In a .rpmorig file in the /usr/local/cpanel/base/horde directory, so that they are accessible by the Horde RPMs.

      Warning:

      Horde 1.2 customizations may be lost in the upgrade process and are not supported in later Horde installations.

  2. The system installs the new Horde RPMs.
    • The installation process upgrades the Horde 1.2 database from ISO-8859-1 (Latin 1) to UTF-8 encoding.
  3. The /usr/local/cpanel/bin/update_horde_config script runs the database schema migration scripts for all Horde applications and components.
    • The update_horde_config script is located in the /usr/local/cpanel/bin/update_horde_config file.
    • The script will perform a backup if some migration actions are pending.
    • For more information, read the Database backups and Configuration values sections of this document.

If you had disabled Horde on your cPanel & WHM version 11.40 server, the upgrade will perform the following actions:

  1. The system sets the Horde target to the uninstalled state.
  2. The system installs the new Horde RPMs.
  3. At the end of the upgrade process, the system uninstalls the Horde RPMs.

Upgrade a centralized database

If Horde data exists in a centralized database, we recommend that you perform the following steps to upgrade that database:

  1. Upgrade a single node and ensure that the database schema upgrade succeeded.
  2. Upgrade the nodes that remain for that database immediately to ensure database stability.

Removed scripts

The upgrade process removes the following Horde scripts and symlinks:

/usr/local/cpanel/bin/killhordeobjs
/usr/local/cpanel/bin/real-updatehorde
/usr/local/cpanel/bin/update-horde
/usr/local/cpanel/bin/updatehorde

 

Database backups

If the update_horde_config script detects the need for a schema update, it will first back up the Horde MySQL database to the /var/cpanel/horde/ directory.

  • Only the last five backups in the /var/cpanel/horde/ directory are available.
  • The system will always save the most recent backup as the /var/cpanel/horde/latest file.
  • The following example lists the horde.backup files that you may see in the /var/cpanel/horde/ directory:

    -rw-------. 1 root        root         87K Aug 14 17:33 horde.backup.sql.20130813
    -rw-------. 1 root        root         87K Aug 14 17:33 horde.backup.sql.20130814
    -rw-------. 1 root        root         87K Aug 14 17:31 horde.backup.sql.20130814.2
    -rw-------. 1 root        root         87K Aug 14 17:34 horde.backup.sql.20130814.3
    -rw-------. 1 root        root         16K Aug 16 10:47 horde.backup.sql.20130816
    lrwxrwxrwx. 1 root        root          25 Aug 16 10:47 latest -> horde.backup.sql.20130816 

Configuration values

Warning:

Do not alter these values. If you do, the update_horde_config script will overwrite them the next time it runs.

The following table lists the configuration values that the update_horde_config script modifies:

Configuration VariableDescription
$conf['sql']['password']The MySQL® database password.
$conf['sql']['hostspec']The MySQL database hostname.
$conf['sql']['database']The MySQL database name
$conf['auth']['admins']

The Horde administrators' usernames.

Note:

The system takes this value from, and updates this value in, the /var/cpanel/cpanel.config file. 

$conf['spell']['params']['path']The path to the third-party binary for the spellchecker.

Customize Horde

When you upgrade from Horde 1.2, the system backs up and stores your Horde configurations as a tarball in the/var/cpanel/horde/horde_1.2_config.tar.gz file.

Warning:

Although the system backs up the configuration in this file, Horde 1.2 themes and customizations are not supported in later installations. 

To customize Horde 5.1.1 or later, system administrators must build a custom RPM. For more information, read the How to Build and Install Custom RPMs documentation.

Included Horde plugins

The cPanel-provided installation of Horde includes the following plugin components:

  • horde — Horde Application Framework.
  • content — A tag application.
  • imp — A web-based webmail system.
  • ingo — An email filter rules manager.
  • kronolith — A web-based calendar.
  • mnemo — A web-based notes manager.
  • nag — A web-based task list manager.
  • timeobjects — The Horde timeobjects application.
  • trean — A web-based bookmark application.
  • turba — A web-based address book.
  • webmail — Horde Groupware Webmail Edition.

Note:

Due to the complexities of shared hosting, the cPanel-provided installation of Horde does not include the gollem plugin. 

Additional Horde modules, and information about customization, are available from the Horde project.

Account data

In cPanel & WHM version 11.40 and earlier, the deletion of a cPanel user account or email address did not remove the associated Horde data.

However, in cPanel & WHM version 11.42 and later, the following statements are true:

  • When you delete a cPanel user's account, the system removes all of the data for all of the account's addresses from the Horde database.
  • When you delete an email address in cPanel, the system removes all of the address's data from the Horde database.

Backup Horde data

Important:

As of cPanel & WHM version 11.42, Horde uses InnoDB tables, which we cannot repair.  You cannot restore Horde accounts that you did not back up without third-party assistance. We strongly recommend that you back up your Horde account data.

All cPanel & WHM backup systems now use the /horde directory in the backup tarball to store Horde account backups. The /mysql/horde.sql file no longer exists.

The following Horde data tables are not part of users' account data and, for this reason, the system does not back them up in conjunction with Horde accounts:

  • kronolith_resources — Resources and Resource Groups are global on the server. Only Horde administrators can access them.
  • All *_schema_info tables — The system saves the version in a meta file.
  • horde_cache — A temporary Horde cache file.
  • horde_groups and horde_groups_members — The Horde user system.
  • horde_histories_modseq — The global internal settings for history retention.
  • horde_imap_client_data — A temporary Horde cache file.
  • horde_imap_client_message — A temporary Horde cache file.
  • horde_imap_client_metadata — A temporary Horde cache file.
  • horde_locks — Horde's internal lock mechanism.
  • horde_perms — Horde's internal permissions mechanism.
  • horde_sessionhandler — Horde's current sessions.
  • imp_sentmail — A temporary Horde cache file.

For more information, read the Backup Tarball Contents documentation.

Restore Horde data

You can restore data from accounts in Horde 5.1.1 or later in the same manner as other account data when you use the Restricted Restore system.

Warning:

Because of changes to Horde's MySQL database, you cannot restore Horde data from cPanel & WHM version 11.42 or later to a server that runs cPanel & WHM version 11.40 or earlier. 

Overview

In cPanel & WHM version 11.50, we moved the Horde user data storage from a single server-wide MySQL database to an individual SQLite database for each cPanel account. We also activated new features of Horde that were previously disabled.

This document explains the methods that the system uses to manage Horde data in cPanel & WHM version 11.50 and later.

Per-user SQLite databases

Upgrades from 11.48 to 11.50

When servers upgrade from 11.48 to 11.50, the system performs a one-time conversion operation during the post-sync cleanup phase of the upgrade. script. This moves the Horde user data from the Horde MySQL database to a set of SQLite databases, one for each cPanel account.

The original Horde database backs up to the /var/cpanel/horde/horde.backup.sql.final file before the system performs this operation. If the backup and the conversion are both successful, the system removes the original Horde MySQL database.

Important:

You cannot downgrade Horde data from cPanel & WHM version 11.50 and later.

New installations of 11.50 and later

For new installations of cPanel & WHM version 11.50 and later, the system stores Horde user data into the new location from the installation. There is not a conversion step.

Backups/restores and transfers

This change impacts backups, restores, and transfers in the following ways:

cPanel & WHM VersionDescription
11.50 and laterEach cPanel account possesses its own Horde SQLite database.
11.48 > 11.50The system transfers your Horde data from a single MySQL database to per-account SQLite databases. After the upgrade, each cPanel account possesses its own Horde SQLite database.  
11.50 > 11.48

Important:

You cannot downgrade Horde data from cPanel & WHM version 11.50.

11.50 > 11.52The system uses the present Horde SQLite databases and upgrades them to work with the latest Horde components.
11.52 > 11.50

Important:

You cannot downgrade Horde data from cPanel & WHM version 11.52.

The cpanelhorde user

As part of the switch to SQLite, the system no longer uses the cpanelhorde user to manage access to the Horde database. The cpanelhorde user was necessary so that individual users could have limited access to the MySQL Horde database. In cPanel & WHM version 11.50 and later, each cPanel account possesses its own Horde SQLite database. Horde webmail and CalDAV/CardDAV services execute as the cPanel account user.

Component upgrades and table schema changes

cPanel & WHM version 11.50 upgrades several components which installs several bug fixes from the upstream maintainers. The new version upgrades the Kronolith application from version 4.1.3 to 4.2.5. The change in version required a minor schema change to the applications tables. cPanel account users should not see any difference in behavior as a result of this change.

cPanel & WHM version 11.52 also upgrades many components which installs numerous bug fixes and features from the upstream maintainers. These upgrades include, but are not limited to, the following modules:

  • Horde Application Framework
  • IMP (Mail)
  • Ingo (Mail Filters)
  • Kronolith (Calendar)
  • Mnemo (Notes and Memos)
  • Nag (Task List)
  • Trean (Bookmark Manager)
  • Turba (Address Book).

Scripts

ScriptDescription

/usr/local/cpanel/bin/update_horde_config

In cPanel & WHM version 11.48 and earlier, the update_horde_config script updated the /usr/local/cpanel/base/horde/config/conf.php file with database credentials and upgrading table schemas. In cPanel & WHM version 11.50, we made the follow changes to this script:

  • This script no longer adds database credentials to /usr/local/cpanel/ base/horde/config/conf.php file. The SQLite database uses filesystem permissions for access control.
  • This script handles the initial creation of cPanel account SQLite database for Horde.
  • The schema check and upgrade operation only executes if you perform the /usr/local/cpanel/ bin/update_horde_config --full command.

Note:

You can access the additional functions of this script if you perform the /usr/local/cpanel/ bin/update_horde_config --help command.

/scripts/horde_mysqltosqlite

This script installs with cPanel & WHM version 11.50 and later.

  • The script performs the switch from the system-wide Horde MySQL database to the per cPanel account Horde SQLite databases.
  • This script runs while the system upgrade from cPanel & WHM version 11.48 to 11.50.
  • This script only runs when you upgrade to cPanel & WHM version 11.50 or later.

Note:

You can read the output of this script in the /var/cpanel/logs/horde_mysqltosqlite_log file.


/usr/local/cpanel/scripts/fullhordereset

We removed this script in cPanel & WHM 11.50.

The SQLite Horde database and the ~/.cphorde directory

In cPanel & WHM version 11.50 and later, each cPanel account possesses its own.cphorde directory under the accounts home directory. The .cphorde directory contains the following items:

NameTypeDescription
horde.sqliteSQLite databaseThis database contains the cPanel accounts Horde data.
metaDirectoryThe backup service uses this directory to create the Horde database backups.
vfsrootDirectoryThe /usr/local/cpanel/ base/horde/config/conf.php file uses this directory for the vfsroot setting.

Changes to the /usr/local/cpanel/base/horde/config/conf.php file

In cPanel & WHM version 11.50 and later, the following changes were made to the  /usr/local/cpanel/ base/horde/config/conf.php file:

  1. The file no longer contains the Horde database credentials or a server-specific MySQL password. The SQL section now contains the generic SQLite setup configuration.
  2. The file's permission is world-readable. 

Important:

cPanel account users must have permissions to this file.

Horde database troubleshooting and repair in cPanel & WHM 11.50 and later

You can use the following table to troubleshoot problems for each cPanel account's Horde SQLite database.

Important:

If you delete a cPanel account's Horde SQLite database, you will lose all of that account's calendar and contact information.

I want to...cPanel & WHM 11.50 and later
Reset horde database password.You can no longer perform this action in cPanel & WHM version 11.50. The SQLite database relies on filesystem permissions for access control, not a password.
Create a missing database for cPanel user bob.

/usr/local/cpanel/bin/update_horde_config --user=bob

Create missing databases for all cPanel users on the system.

/usr/local/cpanel/bin/update_horde_config

Upgrade tables or create missing tables in an existing database for cPanel user bob.

/usr/local/cpanel/bin/update_horde_config --user=bob --full

Note:

The --full flag instructs the update_horde_config script to perform the full table schema check and upgrade/repair instead of only checking whether the database exists.

Upgrade tables or create missing tables in the existing databases for all users on the system.

/usr/local/cpanel/bin/update_horde_config --full

Warning:

This operation may require significant time to execute on systems with many accounts.

Move and re-create a new horde database for the cPanel user bob with the default calendars and address books.

 

  • mv ˜bob/.cphorde/horde.sqlite ˜bob/.cphorde/horde.sqlite.bak
  • /usr/local/cpanel/bin/update_horde_config --user=bob --create-defaults