How To Install Mautic on Debian 13
Mautic has revolutionized marketing automation by offering an open-source solution that rivals expensive proprietary platforms. Installing this powerful marketing software on Debian 13 “Trixie” provides exceptional stability, security, and performance for businesses seeking complete control over their marketing infrastructure. This comprehensive guide walks through every step of installing Mautic on Debian 13, from initial server preparation to advanced configuration and optimization.
Debian 13 represents a significant milestone in server operating systems, featuring the Linux Kernel 6.12 LTS, enhanced security protocols, and the Y2K38 time fix that ensures long-term reliability. Paired with Mautic 5, which delivers 44% fewer requests, 21% less memory usage, and 42% faster load times compared to previous versions, this combination creates an incredibly efficient marketing automation platform. The entire installation process typically takes 45-60 minutes, even for those with intermediate Linux experience.
What is Mautic?
Mautic stands as the world’s leading open-source marketing automation platform, empowering organizations to manage complex marketing campaigns without subscription fees or data restrictions. Built on the robust Symfony framework, Mautic delivers enterprise-grade features including email marketing, lead nurturing, campaign automation, customer segmentation, form builders, and landing page creation.
The platform excels at tracking visitor behavior, scoring leads based on custom criteria, and triggering personalized communications across multiple channels. Version 5 introduces significant architectural improvements with predictive sending algorithms that optimize email delivery times, advanced heat map analysis for understanding user engagement, and a completely redesigned email builder that simplifies campaign creation. Self-hosting Mautic eliminates monthly costs associated with SaaS alternatives while maintaining complete ownership of customer data—a critical consideration for GDPR and privacy compliance.
Small businesses leverage Mautic to compete with larger competitors through sophisticated automation, while enterprises appreciate the scalability and customization options. Marketing agencies particularly benefit from Mautic’s multi-tenant capabilities, managing numerous client accounts from a single installation.
What’s New in Debian 13 Trixie
Debian 13 “Trixie” officially released in August 2025, bringing transformative improvements that make it ideal for hosting web applications like Mautic. The distribution features Linux Kernel 6.12 LTS, providing enhanced hardware support, improved power efficiency, and better security mechanisms. APT 3.0 introduces faster package management with improved dependency resolution and parallel downloads.
Security enhancements include protection against Return-Oriented Programming (ROP), Call-Oriented Programming (COP), and Jump-Oriented Programming (JOP) attacks through advanced hardening techniques. The Y2K38 fix ensures 64-bit time handling across the entire system, eliminating concerns about the 2038 timestamp overflow issue. Debian 13 also implements tmpfs for /tmp
by default, significantly improving temporary file performance for web applications.
Performance optimizations throughout the system stack translate to faster PHP execution, reduced memory overhead, and improved database query performance. These architectural improvements complement Mautic’s resource requirements perfectly, ensuring smooth operation even under heavy load. The distribution maintains Debian’s legendary stability while incorporating modern features that professional hosting environments demand.
Prerequisites
Before beginning the Mautic installation process, ensure access to a fresh Debian 13 server with minimum hardware specifications of 2GB RAM, 2 CPU cores, and 20GB SSD storage. Production environments handling larger contact databases benefit significantly from 4GB RAM or more, as Mautic’s performance scales with available system resources. Root or sudo privileges are essential for installing packages and configuring system services.
A registered domain name or subdomain must point to the server’s IP address through properly configured DNS A records. This domain serves as the access point for the Mautic web interface and email tracking links. Basic Linux command-line proficiency helps navigate the installation process, though this guide provides explicit commands for each step. Access the server through SSH using tools like PuTTY on Windows or the built-in Terminal application on macOS and Linux systems.
Understanding basic firewall concepts proves helpful when configuring security rules. The installation requires opening HTTP (port 80) and HTTPS (port 443) for web traffic. Familiarity with DNS record management ensures proper domain configuration, as email deliverability depends heavily on correct DNS settings including SPF, DKIM, and DMARC records.
Step 1: Update and Upgrade Debian 13 System
Connect to the Debian 13 server via SSH using the command ssh root@your_server_ip
or ssh username@your_server_ip
if using a non-root account. First actions involve updating the package repository cache and upgrading existing system packages to their latest versions, ensuring all security patches and bug fixes are applied.
Execute the following command to update repository information and upgrade installed packages:
apt update && apt upgrade -y
The update process downloads package information from Debian repositories, while the upgrade command installs newer versions of currently installed packages. The -y
flag automatically confirms installation prompts, streamlining the process. This operation typically completes within 5-10 minutes depending on internet connection speed and the number of packages requiring updates.
Verify the system is running Debian 13 Trixie by checking the release information with cat /etc/os-release
. The output should display version 13 with the codename “Trixie.” Maintaining current system packages prevents compatibility issues and ensures access to the latest features and security improvements that support stable Mautic operation.
Step 2: Install Required Dependencies
Several essential packages provide foundational functionality for downloading files, managing SSL certificates, and handling compressed archives. Install these dependencies with a single comprehensive command:
apt install apt-transport-https ca-certificates curl wget unzip nano lsb-release software-properties-common -y
Each package serves specific purposes: apt-transport-https
enables secure package downloads over HTTPS, ca-certificates
provides trusted SSL certificate authorities for verifying secure connections, curl
and wget
facilitate file downloads from web servers, unzip
extracts compressed ZIP archives, nano
offers a user-friendly text editor, lsb-release
provides distribution information for scripts, and software-properties-common
simplifies repository management.
These utilities form the backbone of subsequent installation steps. The installation completes quickly, typically within 2-3 minutes. Verify successful installation by checking versions with commands like wget --version
or curl --version
. Missing dependencies cause installation failures later, so confirming their presence prevents troubleshooting delays.
Step 3: Add PHP Repository (Sury)
Debian’s default repositories may not include the latest PHP versions required for optimal Mautic performance. The Sury PHP repository provides updated PHP releases for Debian systems, maintained by Ondřej Surý, a respected Debian developer. Add this repository to access PHP 8.3, which Mautic 5.2 fully supports.
Download and install the repository GPG key:
curl -sSL https://packages.sury.org/php/apt.gpg -o /usr/share/keyrings/php-archive-keyring.gpg
Add the Sury PHP repository to the system sources:
echo "deb [signed-by=/usr/share/keyrings/php-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
Update the package cache to include packages from the newly added repository:
apt update
The signed-by directive ensures package authenticity by verifying signatures against the imported GPG key. This security measure prevents package tampering. While Debian’s native PHP packages provide stability, the Sury repository offers newer versions with performance improvements and security enhancements that benefit modern web applications like Mautic.
Step 4: Install Apache Web Server
Apache remains the most widely deployed web server globally, offering excellent PHP integration, comprehensive documentation, and mature .htaccess support that Mautic utilizes for URL rewriting. Install Apache2 and configure it for automatic startup:
apt install apache2 -y
systemctl start apache2
systemctl enable apache2
The systemctl start
command initiates the Apache service immediately, while systemctl enable
configures Apache to launch automatically during system boot. Verify Apache is running correctly with systemctl status apache2
, which should display “active (running)” in green text.
Test Apache functionality by navigating to the server’s IP address in a web browser. The default Apache welcome page confirms successful installation. Enable essential Apache modules for Mautic:
a2enmod rewrite ssl headers
systemctl restart apache2
The rewrite
module enables URL rewriting for clean URLs, ssl
provides HTTPS support, and headers
allows custom HTTP header manipulation. Configure firewall rules to allow web traffic:
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
These commands open HTTP and HTTPS ports while activating the Uncomplicated Firewall (UFW) for enhanced security.
Step 5: Install PHP 8.3 and Required Extensions
Mautic requires PHP with numerous extensions for handling emails, image processing, database connections, and internationalization. Install PHP 8.3 along with all necessary extensions:
apt install php8.3 php8.3-cli php8.3-common php8.3-curl php8.3-gd php8.3-imap php8.3-intl php8.3-mbstring php8.3-mysql php8.3-xml php8.3-zip php8.3-bcmath php8.3-opcache libapache2-mod-php8.3 -y
Each extension serves critical functions: php8.3-curl
enables HTTP requests to external APIs, php8.3-gd
processes images for asset management, php8.3-imap
handles monitored mailbox functionality, php8.3-intl
provides internationalization for multi-language campaigns, php8.3-mbstring
manages multibyte character encoding, php8.3-mysql
connects to database servers, php8.3-xml
parses XML data, php8.3-zip
handles compressed files, php8.3-bcmath
performs arbitrary precision mathematics, and php8.3-opcache
dramatically improves PHP performance through bytecode caching.
Verify PHP installation with php -v
, which displays version information. Check installed modules with php -m
to confirm all required extensions are active. Mautic 5.2 supports PHP versions 8.1 through 8.4, providing flexibility for different hosting environments while PHP 8.3 offers the optimal balance of stability and performance.
Step 6: Configure PHP Settings for Mautic
Default PHP configuration values are too restrictive for marketing automation platforms processing large email campaigns and contact imports. Modify PHP settings to accommodate Mautic’s resource requirements. Open the PHP configuration file:
nano /etc/php/8.3/apache2/php.ini
Locate and update these essential settings:
memory_limit = 512M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
date.timezone = Asia/Jakarta
The memory_limit
of 512M allows PHP scripts to consume sufficient RAM for processing large datasets. Setting 256M works for smaller installations, but 512M provides comfortable headroom. The upload_max_filesize
and post_max_size
directives permit uploading large files like contact CSV imports and email attachments. Setting max_execution_time
to 300 seconds prevents script timeouts during lengthy operations like database migrations or report generation.
Configure date.timezone
to match server location, ensuring accurate timestamp handling for scheduled campaigns and analytics. Use the appropriate timezone identifier from PHP’s timezone list. Additional recommended settings include:
max_input_vars = 3000
max_input_time = 300
These values prevent issues with forms containing numerous fields. Save changes and exit nano by pressing CTRL+X, then Y, then ENTER. Restart Apache to apply new PHP settings:
systemctl restart apache2
Create a PHP info test file to verify settings:echo "" > /var/www/html/info.php
. Access http://your_server_ip/info.php
in a browser to confirm configuration changes. Delete this file after verification for security reasons with rm /var/www/html/info.php
.
Step 7: Install and Configure MariaDB Database
MariaDB serves as Mautic’s data repository, storing contacts, campaigns, emails, and analytics. This high-performance MySQL fork offers enhanced scalability and compatibility. Install MariaDB server:
apt install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
Secure the MariaDB installation using the included security script:
mysql_secure_installation
The wizard prompts several security questions. Press Enter when asked for the current root password (none exists initially). Set a strong root password when prompted, then answer “Y” to remove anonymous users, disallow remote root login, remove the test database, and reload privilege tables. These measures harden database security against unauthorized access.
Log into MariaDB to create the Mautic database and user:
mysql -u root -p
Enter the root password set during secure installation. Execute these SQL commands:
CREATE DATABASE mautic CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mauticuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mautic.* TO 'mauticuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Replace StrongPassword123!
with a complex password containing uppercase, lowercase, numbers, and special characters. The utf8mb4_unicode_ci
character set and collation provide full Unicode support, essential for storing international characters in contact names and email content. Store database credentials securely—they’re required during Mautic’s web-based installation.
Optional performance optimization for MariaDB involves editing /etc/mysql/mariadb.conf.d/50-server.cnf
and adding:
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
query_cache_size = 64M
Adjust values based on available system RAM. Restart MariaDB after configuration changes with systemctl restart mariadb
.
Step 8: Download and Extract Mautic
Navigate to the web server document root and download the latest Mautic release. The official Mautic download page provides stable releases as ZIP archives:
cd /var/www/html/
wget https://github.com/mautic/mautic/releases/download/6.0.6/6.0.6.zip
Replace 5.2.1
with the current latest version number from the Mautic releases page. Extract the archive into a dedicated directory:
unzip 6.0.6.zip -d mautic
rm 6.0.6.zip
Set appropriate file ownership and permissions. Apache runs as the www-data
user on Debian systems, requiring this user to own Mautic files:
chown -R www-data:www-data /var/www/html/mautic/
chmod -R 755 /var/www/html/mautic/
Proper permissions prevent “Permission Denied” errors during installation and operation. The 755 permission allows read and execute access for all users while restricting write access to the owner. Specific Mautic directories require write permissions for cache, logs, and media uploads—the installation wizard automatically sets these.
Verify directory structure by listing contents with ls -la /var/www/html/mautic/
. The directory should contain folders like app
, bin
, config
, and files including index.php
and composer.json
.
Step 9: Create Apache Virtual Host for Mautic
Virtual hosts enable Apache to serve multiple websites from a single server. Create a dedicated virtual host configuration for Mautic:
nano /etc/apache2/sites-available/mautic.conf
Insert this comprehensive configuration, replacing yourdomain.com
with the actual domain:
<VirtualHost *:80>
ServerAdmin admin@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html/mautic
<Directory /var/www/html/mautic>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mautic_error.log
CustomLog ${APACHE_LOG_DIR}/mautic_access.log combined
</VirtualHost>
The DocumentRoot
directive specifies where Mautic files reside. AllowOverride All
enables .htaccess files for URL rewriting, critical for Mautic’s routing mechanism. The Require all granted
directive permits public access to the application. Custom log files segregate Mautic access logs from other virtual hosts, simplifying troubleshooting.
Save the file and enable the virtual host:
a2ensite mautic.conf
a2dissite 000-default.conf
Disabling the default site prevents conflicts. Test Apache configuration for syntax errors:
apache2ctl configtest
A “Syntax OK” message indicates proper configuration. Reload Apache to apply changes:
systemctl reload apache2
Ensure DNS records properly point to the server. Use dig yourdomain.com
or nslookup yourdomain.com
to verify DNS resolution. Propagation may take several hours depending on TTL settings and DNS provider.
Step 10: Run Mautic Web-Based Installer
Access the Mautic installation wizard through a web browser by navigating to http://yourdomain.com
. The installer automatically launches, guiding through five configuration steps.
Step 1 – Environment Check performs comprehensive system validation. Green checkmarks confirm requirements are met, including PHP version, required extensions, and file permissions. Red errors block installation progress—resolve these by installing missing PHP extensions or adjusting permissions. Orange warnings indicate recommendations rather than requirements, though addressing them improves performance and reliability.
Common environment check issues include insufficient memory_limit settings, missing PHP extensions, or incorrect file permissions. Return to previous steps to correct any deficiencies before proceeding.
Step 2 – Database Configuration requires entering credentials created earlier. Set Database Driver to “MySQL PDO,” Database Host to “localhost,” Database Port to “3306,” Database Name to “mautic,” Database Username to “mauticuser,” and Database Password to the password assigned earlier. Click “Test Connection” to verify database accessibility. Successful connection displays a green confirmation message.
The installer creates necessary database tables automatically. Optional backup settings configure automated database backups, though many administrators prefer external backup solutions for greater control.
Step 3 – Administrative User Setup creates the primary administrator account. Choose a secure username (avoid “admin” for security), set a strong password meeting complexity requirements, and provide first name, last name, and valid email address. This account gains full system access, so safeguard credentials carefully. Consider using a password manager to generate and store complex passwords.
Step 4 – Email Configuration offers various email transport methods. PHP Mail uses the server’s mail function, suitable for testing but unreliable for production due to deliverability issues. SMTP configuration requires mail server details including hostname, port, authentication credentials, and encryption method. Many administrators skip this step initially, configuring email settings later through Mautic’s administration interface after installation completes.
Third-party email services like SendGrid, Amazon SES, Mailgun, or SparkPost significantly improve deliverability compared to sending from server IP addresses. These services provide dedicated IP addresses, ISP reputation management, and bounce handling.
Step 5 – Installation Complete initiates database population and file generation. The process typically completes within 2-3 minutes, creating database schema and default configuration. Upon completion, the installer redirects to the Mautic login screen. Enter administrator credentials created in Step 3 to access the dashboard.
The initial dashboard displays onboarding widgets explaining core concepts. Explore the interface to familiarize yourself with navigation, including Contacts, Components, Channels, and Settings sections.
Step 11: Configure Mautic Cron Jobs
Cron jobs execute scheduled tasks that power Mautic’s automation capabilities. Without properly configured cron jobs, campaigns won’t trigger, emails won’t send, and segments won’t update. Access the server terminal and edit the crontab for the web server user:
crontab -e -u www-data
Add these essential cron jobs, adjusting paths if Mautic is installed in a different location:
0,15,30,45 * * * * php /var/www/html/mautic/bin/console mautic:segments:update
5,20,35,50 * * * * php /var/www/html/mautic/bin/console mautic:campaigns:update
10,25,40,55 * * * * php /var/www/html/mautic/bin/console mautic:campaigns:trigger
*/5 * * * * php /var/www/html/mautic/bin/console mautic:emails:send
*/15 * * * * php /var/www/html/mautic/bin/console mautic:email:fetch
0 2 * * * php /var/www/html/mautic/bin/console mautic:maintenance:cleanup --days-old=365
0 3 * * * php /var/www/html/mautic/bin/console doctrine:schema:update --dump-sql
The mautic:segments:update
command refreshes contact segments based on defined filters, running every 15 minutes. Campaign updates through mautic:campaigns:update
check if contacts qualify for new campaigns. The mautic:campaigns:trigger
command executes campaign actions for qualified contacts. Email queue processing via mautic:emails:send
dispatches pending emails every 5 minutes. The mautic:email:fetch
command retrieves responses from monitored mailboxes every 15 minutes.
Staggering cron job timing prevents simultaneous execution that could overload the server. Larger contact databases may require adjusted frequencies—reduce to every 30 or 60 minutes if server resources are constrained. Maintenance cleanup removes old data according to retention policies.
Verify cron jobs are executing by checking Mautic’s system information. Navigate to Settings > Configuration > System Settings and review the Cron Jobs section, which displays last execution times. Green indicators confirm successful runs, while red warnings indicate failures requiring investigation.
Alternative deployment methods use queue workers for high-volume installations. Queue workers continuously process pending tasks rather than waiting for scheduled cron execution, significantly improving responsiveness for large-scale operations.
Step 12: Install SSL Certificate with Let’s Encrypt
HTTPS encryption protects user data and significantly improves email deliverability, as many ISPs flag non-HTTPS domains as potential spam sources. Let’s Encrypt provides free SSL certificates with automated renewal. Install Certbot, the official Let’s Encrypt client:
apt install python3-certbot-apache -y
Obtain and install an SSL certificate for the domain:
certbot --apache -d yourdomain.com -d www.yourdomain.com
Replace yourdomain.com
with the actual domain name. Certbot prompts for an email address for renewal notifications and terms of service agreement. Enter a valid email and accept terms by typing “Y.” When asked about HTTPS redirection, choose option 2 to automatically redirect HTTP traffic to HTTPS, ensuring all connections use encryption.
Certbot automatically configures Apache virtual hosts, adds SSL directives, and reloads the web server. The process completes within seconds. Verify SSL installation by accessing https://yourdomain.com
in a browser—the padlock icon in the address bar confirms secure connection.
Let’s Encrypt certificates expire after 90 days, but Certbot installs a systemd timer that automatically renews certificates when they approach expiration. Test automatic renewal with:
certbot renew --dry-run
Successful test output confirms the renewal process works correctly. Check renewal timer status with systemctl status certbot.timer
.
Update Mautic’s site URL to use HTTPS. Navigate to Settings > Configuration > System Settings and change the Site URL field from http://
to https://
. Save configuration changes. This ensures tracking codes, unsubscribe links, and redirects use secure connections.
Step 13: Post-Installation Configuration
Access Mautic’s configuration area by clicking the gear icon in the upper-right corner. The System Settings tab contains critical configuration options affecting overall operation.
System Settings Configuration:
- Site URL: Ensure this reflects the HTTPS domain
- Cache settings: Enable production mode for optimal performance
- IP Lookup Service: Configure MaxMind GeoIP for location tracking
- Anonymize IP: Enable for GDPR compliance, storing only partial IP addresses
Email Settings Configuration:
Configure SMTP server details if skipped during installation. Navigate to Email Settings and select SMTP as the transport method. Enter mail server hostname, port (typically 587 for TLS or 465 for SSL), authentication credentials, and encryption type. Send a test email to verify configuration.
Set default “From” address and name appearing in outgoing emails. Configure bounce and unsubscribe handling by setting up monitored mailboxes. Mautic processes bounces automatically when configured with IMAP access to a dedicated mailbox.
Queue Settings:
Enable queue processing for improved performance, especially for large email campaigns. Queue mode prevents timeout errors by processing emails asynchronously rather than during web requests.
API Settings:
Enable API access if integrating Mautic with external applications. Generate API credentials with appropriate permission levels based on integration requirements.
Tracking Settings:
Configure JavaScript tracking parameters, UTM tag handling, and contact identification methods. Adjust tracking cookie lifetime based on privacy policies and business requirements.
Create initial contact segments based on criteria like location, engagement level, or lead source. Define custom fields for storing additional contact information specific to business needs. Build a test campaign to verify all components function correctly, including forms, emails, and automation workflows.
Step 14: Optimize Mautic Performance
PHP OPcache dramatically improves performance by storing compiled bytecode in memory, eliminating repeated script compilation. Enable OPcache in PHP configuration:
nano /etc/php/8.3/apache2/php.ini
Verify these OPcache settings are enabled:
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
Apache MPM (Multi-Processing Module) settings affect concurrent request handling. Edit MPM prefork configuration:
nano /etc/apache2/mods-available/mpm_prefork.conf
Adjust values based on available RAM:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 3000
</IfModule>
Enable MariaDB query cache for frequently accessed data. Edit MariaDB configuration and add query cache settings as described in Step 7. Restart services after configuration changes:
systemctl restart apache2
systemctl restart mariadb
Implement Redis or Memcached for session storage and object caching in high-traffic environments. These in-memory data stores significantly reduce database queries. Configure Mautic to use Redis by modifying app/config/local.php
and adding cache configuration directives.
Regular database optimization maintains query performance. Schedule monthly execution of:
mysqlcheck -o mautic -u root -p
Implement comprehensive backup strategies covering both database and Mautic files. Automated daily database backups with weekly full file backups ensure disaster recovery capabilities. Store backups off-site using services like Amazon S3, Backblaze B2, or remote servers.
Monitor resource usage with tools like htop, netdata, or Prometheus to identify performance bottlenecks. Set up monitoring alerts for high CPU usage, memory exhaustion, or disk space depletion.
Troubleshooting Common Installation Issues
504 Gateway Timeout Errors occur when PHP scripts exceed maximum execution time limits. Increase timeout values in both PHP and Apache configurations. Edit php.ini and raise max_execution_time
to 600 seconds. Modify Apache configuration by adding Timeout 600
to /etc/apache2/apache2.conf
. Restart Apache after changes.
File Permission Errors prevent Mautic from writing cache files, logs, or uploaded media. Reset permissions to grant the web server user full access:
chown -R www-data:www-data /var/www/html/mautic/
find /var/www/html/mautic -type d -exec chmod 755 {} \;
find /var/www/html/mautic -type f -exec chmod 644 {} \;
Specific directories require write permissions: var/cache
, var/logs
, var/spool
, and media
. Set these to 775 permissions.
PHP Version Mismatches arise when Apache uses a different PHP version than the command line. Verify Apache’s PHP module with apachectl -M | grep php
. Ensure the correct libapache2-mod-php package is installed. Disable conflicting PHP modules and enable only PHP 8.3.
Database Connection Failures indicate incorrect credentials, firewall blocking, or MariaDB service issues. Test database connectivity manually with mysql -u mauticuser -p
. Verify MariaDB is running with systemctl status mariadb
. Check firewall rules aren’t blocking local database connections.
Cron Jobs Not Executing results from incorrect file paths, permission issues, or cron service problems. Verify cron service runs with systemctl status cron
. Check crontab entries for the www-data user with crontab -l -u www-data
. Test commands manually by executing them directly in the terminal. Review system logs at /var/log/syslog
for cron-related error messages.
White Screen or 500 Internal Server Errors typically stem from PHP errors, insufficient memory, or corrupted cache files. Clear Mautic’s cache:
cd /var/www/html/mautic
php bin/console cache:clear
Check Apache error logs for detailed error messages:
tail -f /var/log/apache2/mautic_error.log
Enable debug mode temporarily by editing app/config/local.php
and setting debug
to true
. Remember to disable debug mode after troubleshooting, as it exposes sensitive information.
Email Delivery Problems arise from misconfigured SMTP settings, missing SPF/DKIM records, or ISP reputation issues. Test SMTP connectivity using telnet or dedicated SMTP testing tools. Verify DNS records include SPF entries authorizing the mail server. Implement DKIM signing to prove email authenticity. Monitor bounce rates and adjust sending practices if deliverability declines.
The Mautic community provides extensive support resources. Visit the official forums at forum.mautic.org for assistance, join the Mautic Slack workspace for real-time discussions, and consult documentation at docs.mautic.org for detailed feature explanations.
Security Best Practices
Change the default admin username immediately after installation. Using “admin” as a username makes brute-force attacks significantly easier. Create a new administrator account with a unique username, then delete the original admin account.
Implement strong password policies requiring minimum lengths of 12 characters with mixed case, numbers, and special characters. Consider enforcing password changes every 90 days for administrator accounts. Enable two-factor authentication through plugins or external authentication systems like LDAP or OAuth.
Keep Mautic updated regularly by checking for new releases in the dashboard’s notification area. Updates include security patches, bug fixes, and new features. Always backup before updating to enable rollback if issues arise. Test updates on staging environments before applying to production systems.
Maintain current Debian system packages through regular updates:
apt update && apt upgrade -y
Schedule monthly security audits reviewing user accounts, permission levels, and access logs. Remove unused accounts and revoke unnecessary privileges following the principle of least privilege.
Configure UFW firewall rules to restrict access to essential ports only:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Implement Fail2Ban to automatically block IP addresses exhibiting suspicious behavior like repeated login failures. Install and configure Fail2Ban:
apt install fail2ban -y
Create a custom jail for Mautic login protection by adding rules to /etc/fail2ban/jail.local
. Fail2Ban monitors logs and temporarily bans IP addresses exceeding failed authentication thresholds.
Establish regular backup schedules using automated tools like cron jobs with mysqldump for databases and rsync for files. Store backups securely off-site with encryption. Test restore procedures quarterly to verify backup integrity.
Monitor access logs for anomalous patterns indicating potential security breaches. Log analysis tools like GoAccess or Matomo provide insights into traffic patterns. Configure alerts for suspicious activities like unusual access times, geographic anomalies, or elevated error rates.
Secure API credentials by restricting access to specific IP addresses and using OAuth2 authentication when possible. Rotate API keys periodically and immediately revoke compromised credentials.
Congratulations! You have successfully installed Mautic. Thanks for using this tutorial for installing Mautic digital marketing tool on Debian 13 “Trixie” system. For additional help or useful information, we recommend you check the official Mautic website.