Guide to Horde Data Behavior
Last modified: April 6, 2020
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.
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 and restores and transfers
This change impacts backups, restores, and transfers in the following ways:
11.50 and later — Each cPanel account possesses its own Horde SQLite database.
11.48 > 11.50 — The 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.52 — The 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
Ingo (Mail Filters)
Mnemo (Notes and Memos)
Nag (Task List)
Trean (Bookmark Manager)
Turba (Address Book).
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.phpfile. 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
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.
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:
horde.sqlite(SQLite database) — This database contains the cPanel accounts Horde data.
meta(Directory) — The backup service uses this directory to create the Horde database backups.
vfsroot(Directory) — The
/usr/local/cpanel/base/horde/config/conf.phpfile uses this directory for the
Changes to the conf.php file
In cPanel & WHM version 11.50 and later, the following changes were made to the
- 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.
- The file’s permission is world-readable.
Horde database troubleshooting and repair in cPanel and WHM 11 50 and later
You can use the following section to troubleshoot problems for each cPanel account’s Horde SQLite database.
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
Create missing databases for all cPanel users on the system. —
Upgrade tables or create missing tables in an existing database for cPanel user
/usr/local/cpanel/bin/update_horde_config --user=bob --fullNote:The
--fullflag instructs the
update_horde_configscript 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 --fullWarning: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