Fix Plesk Roundcube Webmail 500 Error: Database & PHP Configuration Solutions

Priya

Content Writer & Researcher

Last Updated: 8 August 2026
Fix Plesk Roundcube Webmail 500 Error: Database & PHP Configuration Solutions
πŸ–₯️

Plesk Roundcube Webmail Down? We'll Fix It β€” and Keep It Fixed

CloudHouse Technologies' Plesk server management team diagnoses and resolves Roundcube errors fast β€” including PHP compatibility issues, database failures, and post-upgrade breakage. Contact us for same-day support.

πŸ–₯️12,400+PCs Fixed
⭐4.9β˜…Google Rating
⚑<15 minAvg. Response
πŸ›‘οΈISO 27001Certified

A Roundcube 500 Internal Server Error on a Plesk server is one of those failures that looks catastrophic but is almost always caused by one of a handful of fixable configuration issues. When webmail goes down, your hosting customers can't access their email from a browser β€” support tickets spike, and every minute counts. This guide walks you through the exact diagnostic steps and fixes for the most common causes of Roundcube 500 errors on Plesk servers.

Understanding Why Roundcube Returns a 500 Error on Plesk

Roundcube is a PHP application that Plesk installs and manages separately from the core panel. A 500 error means PHP or the web server encountered an unhandled exception and couldn't return a proper page. On Plesk, the most frequent root causes are:

  • Database driver mismatch β€” Roundcube's configuration specifies a database driver (PDO_MySQL, MySQLi) that isn't available in the PHP version Plesk is using for webmail
  • PHP timezone not configured β€” missing or invalid date.timezone in php.ini causes fatal errors in newer PHP versions
  • Roundcube database connection failure β€” the rcmail database user lost its password or privileges after a Plesk update
  • Incompatible PHP version after Plesk upgrade β€” Plesk updates sometimes switch the webmail PHP version to one where Roundcube's extensions aren't loaded
  • Corrupt or missing Roundcube session directory β€” PHP session writes fail and Roundcube can't start

πŸ’‘ None of these worked? Skip the guesswork.

Get Expert Help β†’

Step 1: Read the Error Logs Before Doing Anything Else

1Check the Roundcube error log
tail -n 50 /var/log/roundcube/errors.log

Or, on some Plesk installations:

tail -n 50 /usr/share/roundcube/logs/errors

The log almost always names the exact problem: a database connection error, a missing PHP extension, a timezone warning that escalated to a fatal, or a session write failure.

2Check the webmail virtual host error log
tail -n 50 /var/log/plesk/nginx/webmail.error.log

Or for Apache:

tail -n 50 /var/log/plesk/apache/webmail.error.log

PHP fatal errors are typically captured here when Roundcube's own log isn't writable.

3Check the PHP error log for the Plesk webmail service
grep -i "roundcube\|webmail\|fatal\|error" /var/log/php-errors.log | tail -20
1Check which PHP version Plesk uses for webmail
plesk bin php_handler --list | grep webmail

Note the PHP version (e.g., 8.1, 8.2).

2Check if the required extension is installed for that version
php -r "phpinfo();" | grep -i "pdo_mysql\|mysqli"

If the extension is missing, install it via Plesk's PHP settings:

plesk bin php_handler --set-webmail-handler --version=8.1
3Install the missing PHP extension manually

On CentOS/AlmaLinux/CloudLinux:

yum install php81-php-mysqlnd php81-php-pdo

On Debian/Ubuntu:

apt install php8.1-mysql

After installing, restart PHP-FPM:

systemctl restart plesk-php81-fpm
1Find the php.ini used by Plesk's webmail
php --ini | grep "Loaded Configuration"

Or check the Plesk-managed php.ini path, typically at:

/opt/plesk/php/8.1/etc/php.ini
2Set the timezone
[Date]
date.timezone = "UTC"

Or replace UTC with the server's actual timezone (e.g., America/New_York, Asia/Kolkata). Verify the timezone string is valid:

php -r "echo date_default_timezone_get();"
3Restart the PHP handler
systemctl restart plesk-php81-fpm
1Check the Roundcube database configuration
cat /etc/roundcubemail/config.inc.php | grep db_dsnw

Or on some Plesk versions:

cat /usr/share/roundcube/config/config.inc.php | grep db_dsnw

This shows the database user and password Roundcube uses. Note the username.

2Verify the database user exists and has correct privileges
mysql -u root -p -e "SELECT user, host FROM mysql.user WHERE user LIKE '%roundcube%';"

Then check grants:

SHOW GRANTS FOR 'roundcube'@'localhost';
3Reset the Roundcube database password if needed
mysql -u root -p -e "ALTER USER 'roundcube'@'localhost' IDENTIFIED BY 'new_strong_password';"

Then update the password in config.inc.php to match.

4Re-run the Roundcube installer to repair the database

Navigate to https://webmail.yourdomain.com/installer/ in a browser (you may need to temporarily enable the installer in config.inc.php by setting $config['enable_installer'] = true;). Run the database initialisation step to recreate missing tables.

1Check if the session directory is writable
ls -la /var/lib/php/sessions/
ls -la /tmp/roundcube-temp/

If these directories are owned by root and not writable by the webmail PHP user, sessions fail silently and return 500.

2Fix permissions
chown -R apache:apache /var/lib/php/sessions/   # CentOS/AlmaLinux
chown -R www-data:www-data /var/lib/php/sessions/ # Debian/Ubuntu
chmod 1733 /var/lib/php/sessions/
3Clear the Roundcube cache
rm -rf /usr/share/roundcube/temp/*
rm -rf /usr/share/roundcube/cache/*
1Repair via Plesk CLI
plesk repair mail -all

This re-checks webmail dependencies, resets file permissions, and verifies the database schema.

2Update Roundcube to the latest Plesk-supported version
plesk installer --select-product-id plesk --select-release-current --upgrade-installed-components

This upgrades all Plesk components including Roundcube to the version tested with your Plesk release.

3Force reinstall if upgrade doesn't help
plesk installer --select-product-id plesk --select-release-current --install-component roundcube

Step 7: Verify Roundcube Is Working

curl -I https://webmail.yourdomain.com/
# Expected: HTTP/2 200

Then log in with a test mailbox and confirm the inbox loads, mail can be sent, and the interface doesn't show any PHP warnings.

Persistent Roundcube 500 errors across multiple domains on a shared Plesk server often point to a post-update PHP compatibility issue that affects all accounts simultaneously. CloudHouse Technologies' server management service monitors Plesk installations proactively, catches PHP and webmail compatibility issues before they cause customer-facing outages, and handles Plesk version upgrades safely.

Get the Free Linux Server Admin Cheatsheet (PDF)

Essential commands for server management, networking, and troubleshooting β€” all on one printable page.

Running Linux servers? Let us manage them for you.

Our Managed Linux Server plans cover updates, security hardening, monitoring, and 24/7 incident response β€” so your servers stay up and your team stays focused.

  • Proactive OS patching and security updates
  • 24Γ—7 monitoring with instant alerting
  • Backup configuration and disaster recovery
  • Dedicated Linux engineers on call
See Pricing Plans β†’

What our customers say

β€œOur production server went down at 2 AM. CloudHouse had it back online in under 20 minutes. Incredible response time.”

Arun S.

CTO, SaaS Startup

β€œThey migrated our entire infrastructure from Ubuntu 18 to 22 with zero downtime. Couldn't have asked for better.”

Deepak N.

DevOps Lead

Frequently Asked Questions

Plesk updates sometimes change the PHP version used for webmail. If the new PHP version doesn't have the required database driver (pdo_mysql or mysqli) loaded, Roundcube fails to connect to its database and returns a 500 error. Check /var/log/roundcube/errors.log for the exact cause.

Need this done for you?

Server Management Service

Managed Linux and Windows servers: monitoring, patching, security and 24/7 support.

Learn more

Book your free 15-minute diagnosis

A certified technician will call you back within 15 minutes during business hours.

Share this article

Leave a Comment

Comments (0)

Loading comments...