The Webmail client Horde on my cPanel/WHM server throwing a “not found” error on web browsers. Yeah, it’s weird. Here I’m explaining the steps to resolve this error painlessly.
Horde is one of the commonly using open source Webmail software in web hosting servers. The mail client Horde gives you the ability to access your information no matter where you are – On the road using your mobile phone; at your desk with your favorite web browser-based interface etc.
In latest version of cPanel (since 11.50) they updated/implemented a lot features with Horde. They 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. So this fix probably works for server with cPanel version less that 11.50.
Here we goes!!
How to troubleshoot this 404 error with Horde?
1st step of troubleshooting..
Check the MySQL on the server UP and listening.
Please run the following command to know if there is any difference in Horde configuration.
If there any problems exist, the above command may shows some errors like:
Horde 404 error + Fatal Error: Could not instantiate PDO with DSN “mysql:persistent=1; port=3306;protocol=tcp;ssl=1;host=127.0.0.1;dbname=horde”. PDOException: SQLSTATE[HY000]  Can’t connect to MySQL server on ’127.0.0.1′ (111) In /usr/local/cpanel/3rdparty/php/54/lib/php/Horde/Db/Adapter/Pdo/Base.php on line 344
Then, we can move over to the 3rd step of troubleshooting
Checking the username and password for the Horde database is correct. You will get those details from the following configuration file.
Open the file and check the following entries; username, password, hostspec, port
$conf['sql']['username'] = 'horde'; $conf['sql']['password'] = 'PASSWORD'; $conf['sql']['hostspec'] = 'localhost'; $conf['sql']['port'] = 3306;
Then check the password is working:
# mysql -u horde -p
If the password is not matching, reset it from the MySQL command prompt. You can use the following command to reset the password:
> use mysql; > update user set password=PASSWORD("newpassword") where User='horde'; > flush privileges; > quit
/etc/init.d/mysql stop; /etc/init.d/mysql start
That’s it dude!!
Ohh.. password is working for me. What to do then?
Okay, if all the steps we discussed are correct, then try the following one.
Open “/usr/local/cpanel/3rdparty/php/54/lib/php/Horde/Db/Adapter/Pdo/Mysql.php,” then change the following entry:
$this->_config['host'] = '127.0.0.1'; to $this->_config['host'] = 'localhost';
Then execute ” /usr/local/cpanel/bin/update_horde_config.”