The Best Price for IPv4/IPv6 Lease – Any RIR & Any Geo-LocationOrder Now
Hostperl

Setup SquirrelMail Webmail on Ubuntu VPS: Complete Installation

By Raman Kumar

Share:

Updated on Jun 15, 2026

Setup SquirrelMail Webmail on Ubuntu VPS: Complete Installation

Understanding SquirrelMail for VPS Email Management

SquirrelMail provides a lightweight, PHP-based webmail interface that works well on VPS environments where resources matter. Unlike heavier alternatives, it delivers reliable IMAP and POP3 access without demanding significant CPU or memory overhead.

This guide covers the complete process to setup SquirrelMail webmail Ubuntu VPS, from initial installation through security hardening. You'll get a working webmail system that users can access from any web browser.

Before starting, ensure your Ubuntu VPS has Apache, PHP, and a working mail server (Postfix/Dovecot) already configured. Hostperl VPS hosting provides the perfect foundation for this setup with managed Apache and PHP environments.

Installing Required Dependencies

Update your package repository and install the necessary components for SquirrelMail to function properly:

sudo apt update
sudo apt install squirrelmail php php-mbstring php-xml php-imap apache2-utils

The php-imap extension is crucial for IMAP connectivity. The php-mbstring and php-xml packages handle international characters and configuration parsing respectively.

Verify PHP IMAP support is active:

php -m | grep imap

You should see "imap" in the output. If not, restart Apache after the installation:

sudo systemctl restart apache2

Configuring SquirrelMail Core Settings

SquirrelMail includes a configuration script that simplifies the initial setup. Run the configuration utility:

sudo squirrelmail-configure

Navigate through the menu options systematically. First, set option 1 (Organization Preferences):

  • Organization Name: Your company or domain name
  • Organization Logo: Leave blank or specify a path
  • Organization Title: Appears in browser title bar

Under option 2 (Server Settings), configure your mail server details:

  • Domain: Your primary email domain
  • IMAP Settings: Usually localhost:143 for local Dovecot
  • SMTP Settings: localhost:25 for local Postfix

For option 4 (General Options), enable these features:

  • Data Directory: /var/lib/squirrelmail/data/
  • Attachment Directory: /var/lib/squirrelmail/attach/
  • Hash Level: 0 (for small user bases)

Save your configuration with option S, then quit with Q.

Setting Up Apache Virtual Host

Create a dedicated Apache virtual host for your webmail interface. This provides better security isolation and easier SSL management.

Create the virtual host configuration file:

sudo nano /etc/apache2/sites-available/webmail.conf

Add this configuration, replacing "webmail.yourdomain.com" with your actual subdomain:

<VirtualHost *:80>
    ServerName webmail.yourdomain.com
    DocumentRoot /usr/share/squirrelmail
    
    <Directory /usr/share/squirrelmail>
        Options -Indexes
        AllowOverride All
        Require all granted
    </Directory>
    
    ErrorLog ${APACHE_LOG_DIR}/webmail_error.log
    CustomLog ${APACHE_LOG_DIR}/webmail_access.log combined
</VirtualHost>

Enable the new site and necessary Apache modules:

sudo a2ensite webmail.conf
sudo a2enmod rewrite
sudo systemctl reload apache2

Test your configuration by visiting http://webmail.yourdomain.com in your browser. You should see the SquirrelMail login interface.

Securing SquirrelMail with SSL/TLS

Never run webmail over plain HTTP in production. Install and configure SSL using Let's Encrypt certificates.

Install Certbot if not already available:

sudo apt install certbot python3-certbot-apache

Generate SSL certificates for your webmail subdomain:

sudo certbot --apache -d webmail.yourdomain.com

Certbot automatically modifies your Apache configuration to redirect HTTP to HTTPS and adds SSL directives. Your virtual host file now includes SSL configuration:

<VirtualHost *:443>
    ServerName webmail.yourdomain.com
    DocumentRoot /usr/share/squirrelmail
    
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/webmail.yourdomain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/webmail.yourdomain.com/privkey.pem
</VirtualHost>

Many hosting providers handle SSL certificate management automatically. On Hostperl VPS hosting, you can manage SSL certificates through the control panel interface for easier maintenance.

Customizing SquirrelMail Appearance

SquirrelMail's default interface works well but benefits from customization to match your brand or improve usability.

Edit the CSS file to modify colors and fonts:

sudo nano /usr/share/squirrelmail/themes/default_theme.php

Key variables to customize include:

$color[0] = '#dcdcdc';   // Background color
$color[1] = '#800000';   // Header background
$color[2] = '#cc0000';   // Warning/error messages
$color[4] = '#ffffff';   // Main background
$color[5] = '#ffffcc';   // Table headers

Create custom login page text by editing:

sudo nano /usr/share/squirrelmail/functions/i18n.php

For more extensive customization, install additional themes:

cd /usr/share/squirrelmail/themes/
sudo wget https://squirrelmail.org/plugins/monostyle-1.0-1.2.0.tar.gz
sudo tar -xzf monostyle-1.0-1.2.0.tar.gz

Users can then select themes from their preferences once logged in.

Installing Essential Plugins

SquirrelMail's plugin architecture extends functionality significantly. Install commonly needed plugins for better user experience.

Download and install the most useful plugins:

cd /usr/share/squirrelmail/plugins/
sudo wget https://squirrelmail.org/plugins/compatibility-2.0.16-1.0.tar.gz
sudo tar -xzf compatibility-2.0.16-1.0.tar.gz
sudo chown -R www-data:www-data compatibility/

Essential plugins to consider:

  • compatibility: Ensures compatibility with various PHP versions
  • change_password: Allows users to change passwords through webmail
  • address_add: Enhanced address book functionality
  • calendar: Basic calendar integration
  • filters: Advanced email filtering options

Enable plugins through the configuration script:

sudo squirrelmail-configure

Select option 8 (Plugins), then option 1 to enable available plugins. The compatibility plugin should be enabled first to prevent conflicts.

Optimizing Performance and Security

Several configuration tweaks improve both security and performance for production SquirrelMail deployments.

Set secure directory permissions:

sudo chown -R www-data:www-data /var/lib/squirrelmail/
sudo chmod 700 /var/lib/squirrelmail/data/
sudo chmod 730 /var/lib/squirrelmail/attach/

Configure PHP settings for optimal performance. Edit your PHP configuration:

sudo nano /etc/php/8.1/apache2/php.ini

Adjust these values for webmail usage:

max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 50M
upload_max_filesize = 25M

Enable session security in SquirrelMail configuration:

sudo nano /etc/squirrelmail/config.php

Add these security-focused settings:

$use_smtp_tls = true;
$smtp_auth_mech = 'login';
$imap_auth_mech = 'login';
$force_username_lowercase = true;

Testing and Troubleshooting Common Issues

Test your SquirrelMail installation thoroughly before deploying to users. Common issues include IMAP connection problems and PHP extension conflicts.

Check IMAP connectivity from the command line:

telnet localhost 143

You should see the Dovecot IMAP4 ready response. If connection fails, verify your Dovecot configuration and firewall rules.

Monitor SquirrelMail logs for authentication issues:

sudo tail -f /var/log/apache2/webmail_error.log
sudo tail -f /var/log/mail.log

Common error solutions:

  • "Connection refused" errors: Check that Dovecot is running and listening on port 143
  • "Login failed" messages: Verify user accounts exist in your mail system
  • "PHP Fatal error" messages: Ensure all required PHP extensions are installed and enabled
  • Blank pages or layout issues: Check PHP error logs and verify file permissions

For ongoing monitoring, set up log rotation to prevent disk space issues:

sudo nano /etc/logrotate.d/squirrelmail

Add this configuration:

/var/log/apache2/webmail_*.log {
    weekly
    missingok
    rotate 12
    compress
    notifempty
    create 644 root adm
}

Ready to deploy SquirrelMail on a reliable VPS platform? Hostperl VPS hosting provides optimized Ubuntu environments with pre-configured Apache, PHP, and mail server components. Our support team can assist with SquirrelMail installation and configuration to get your webmail system running smoothly.

Frequently Asked Questions

Can SquirrelMail work with external IMAP servers?

Yes, SquirrelMail can connect to any IMAP server. Simply configure the IMAP server settings in the SquirrelMail configuration to point to your external mail server's hostname and port.

How do I backup SquirrelMail user preferences and data?

Backup the /var/lib/squirrelmail/ directory which contains user preferences, address books, and temporary attachment files. Also backup your configuration file at /etc/squirrelmail/config.php.

What's the difference between SquirrelMail and RoundCube?

SquirrelMail is lighter weight and uses less server resources, making it ideal for VPS environments. RoundCube offers a more modern interface but requires more CPU and memory. SquirrelMail is also more stable for high-concurrency scenarios.

Can I run multiple SquirrelMail instances for different domains?

Yes, create separate Apache virtual hosts with different DocumentRoot paths pointing to separate SquirrelMail installations. Each can have its own configuration file and branding.

How do I enable SMTP authentication in SquirrelMail?

In the SquirrelMail configuration script, under Server Settings > SMTP Settings, set "SMTP Authentication" to "yes" and configure the appropriate authentication mechanism (usually "login" or "plain").