Skip to content

Mautic 5.1.1 Install Tutorial: Debian 12, PHP 8.2, MariaDB 11.4

5 Simple Steps to Install Mautic 5.1.1 on Debian 12.

  1. Install the packages required to run Mautic 5.
  2. Install Mautic 5.1.1 – Codename: Alpheratz
  3. Run the Mautic 5 configuration wizard.
  4. Install the Mautic 5 Cron Jobs.
  5. Enjoy your first Mautic 5 installation!

I usually do these tutorials for Ubuntu, however, Debian is having a surge in popularity and for good reasons, in fact, in production, I am switching from Ubuntu to Debian, so I thought it was time to add Debian 12 to the Mautic installation tutorials…

Debian has been flourishing lately, some key changes in their view of the world and changes in what is acceptable in a FOSS OS are bringing, a much needed, breath of fresh air.

So, if you don’t need to support the latest hardware, and you enjoy reliability and stability, give Debian a spin for your next Mautic 5 installation, you won’t regret it!

With a major code refactoring, a new Symfony 5 under the hood and an intensive fat reduction treatment, Mautic 5 is as lean and mean as it gets.
This is an early release and, in my opinion, not yet ready for production, but the promise of a new level of stability and performance makes it very enticing to install Mautic 5 and give it a spin (surprise, surprise, it is faster and feels more streamlined than Mautic 4).

But wait, there’s more! With PHP 8.2 support and MariaDB 11.4, your Mautic will run faster, and your database will self optimize better than ever before.
So here’s, as always, the best possible specs for your new Mautic 5 installation! Start your Mautic 5 venture with the right foot!

Updated on September, 20 for Mautic 5.1.1

Should I use Mautic 4 in production when Mautic 5 is already available?
Don’t get fooled by the new and sparkly Mautic 5, it is too soon to use it, in production go for the stable and reliable Mautic 4 instead, because it is:
– Well tested, very stable, no bugs.
– Existing bugs in M4 are known and already fixed in Mautic 4.4.13
– Uses older, stabler versions of the entire stack (Ubuntu, MariaDB, PHP, etc…)
– Stack will not vary over time as it is very mature.

All that said, let’s install Mautic 5! or ——>>> Check out the Mautic 4 installation tutorial instead <<<——

Pre-requisites for installing Mautic 5

  • A server or VPS connected to the internet.
  • A public IP and a domain or sub-domain.
  • SSH access to your server or VPS.

If you are new to Mautic or to the Linux command line, this installation tutorial was made specifically for you, it’s the simplest way to get started as I carefully designed it to have the fewer amount of simple commands possible so it’s easier to understand and the probability of anything going sideways is minimal.

It’s designed to give you a quick success using the command line so you can have an easy victory and gain the confidence to later advance towards more complex, more secure, and better-optimized Mautic setups.

What all this means is very reduced chanced of hitting a bug or compatibility issue with this setup, but if you do hit a bug, post in the comments below and we’ll try to help you.

Step 1: Install the packages required to run Mautic 5.

Let’s get started installing Mautic 5 on our VPS, first log in to the VPS… gain sudo privileges so you have the rights to issue all the commands:

sudo su

Now make sure your server is up-to-date by updating the Debian 12 OS.

apt update && apt upgrade -y

Before we install all the required packages (applications) that are needed to run Mautic, we will add the https://deb.sury.org/ PHP repository, because we want to use updated versions of the packages. In order to do so, we will need a few packages first:

apt install apt-transport-https ca-certificates curl libhashkit2 lsb-release nano ntp openssl ssl-cert unzip wget

Now we can set up the Sury repositories:

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list

And also the repositories for the latest Maria DB stable versions:
echo "deb [signed-by=/usr/share/keyrings/mariadb-keyring.pgp] \
https://deb.mariadb.org/11.3/debian `lsb_release -cs` main" | tee /etc/apt/sources.list.d/mariadb.list


curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash -s -- --mariadb-server-version=11.4

apt update && apt upgrade -y && apt autoremove -y

Now we are finally ready to install all the required packages:

apt install apache2 libapache2-mod-fcgid mariadb-server cron php-{apcu,bcmath,fpm,mysql,amqplib,curl,igbinary,intl,mbstring} php8.2-{apcu,bcmath,bz2,cli,common,curl,fpm,gd,gmp,igbinary,imap,intl,mbstring,msgpack,mysql,opcache,phpdbg,readline,soap,tidy,xml,xml,xmlrpc,zip}

Activate any required Apache modules that are not active by default after installation
a2enmod proxy_fcgi setenvif rewrite expires headers http2 ssl actions alias

And we also enable the newly installed PHP 8.2

a2enconf php8.2-fpm

Now we force PHP-CLI to the version we want to use for Mautic

update-alternatives --set php /usr/bin/php8.2

Let’s check if the version of PHP for the CLI is the same
php -v

Configure Apache:

wget https://files.mktg.dev/pub/install-mautic/000-default.conf.txt -O /etc/apache2/sites-available/000-default.conf

Configure PHP

sed -i 's/memory_limit = 128M/memory_limit = 512M/' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 32M/' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 32M/' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 60/' /etc/php/8.2/fpm/php.ini
sed -i 's/;date.timezone =/date.timezone = UTC/' /etc/php/8.2/fpm/php.ini
cp /etc/php/8.2/fpm/php.ini /etc/php/8.2/cli/php.ini

On Debian, the default MariaDB configuration doesn’t play nice with the Mautic DB, let’s explicitly configure MariaDB to avoid any issues.

sed -i 's/character-set-collations = utf8mb4=uca1400_ai_ci/character-set-collations = utf8mb4=utf8_unicode_ci/' /etc/mysql/mariadb.conf.d/50-server.cnf

We should restart MariaDB now:
service mariadb restart

Let’s make sure the DB is working as expected with the new configuration
service mariadb status

We can now proceed to create a database for Mautic.
/usr/bin/mariadb -u root

The above command will connect you to your database, the only difference you will notice is that the text before your command prompt will change to “MariaDB [(none)]>”

MariaDB [(none)]> CREATE DATABASE mautic DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> GRANT ALL ON mautic.* TO 'root'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

After the “EXIT;” command, you will return to the normal mode…

Step 2: Install Mautic 5.1.1

cd /var/www/html
wget https://github.com/mautic/mautic/releases/download/5.1.1/5.1.1.zip
unzip 5.1.1.zip
rm 5.1.1.zip

Make sure Apache and Mautic, have ownership and write access to the files.

find /var/www/html -type d -exec chmod 755 -- {} +; find /var/www/html -type f -exec chmod 644 -- {} +; chown -R www-data:www-data /var/www/html

Almost done, let’s reload the services so they can catch the configuration changes.

service apache2 restart
service php8.2-fpm restart

sudo -u www-data php /var/www/html/bin/console cache:clear

That is all, let’s reboot the server, so everything gets properly initialized.

reboot

OK, so your new Mautic 5.0 Installation is now completed, now you just need to run the Installation Wizard:

Step 3: Run the Mautic 5 Configuration Wizard.

Mautic 5 is now ready to be configured, you just need to use a browser, like Chrome or Firefox, and navigate to the domain you have prepared for Mautic or to the IP of your server, preceded with http://

 Here’s an excerpt of your configuration for the Mautic Installation Wizard

  • Database driver: MySQL PDO
  • Database Host: localhost
  • Database port: 3306
  • DB name: mautic
  • Database Table Prefix: Leave empty
  • DB User: root
  • DB Password: password
  • Backup existing tables: No

If you need help with the wizard steps, check this other post with very detailed step by step instructions for each of the screens: Mautic Installation: The Configuration Wizard

Step 4: Install the Mautic 5 Cron Jobs.

Mautic is now already installed and you can navigate to all the sections and explore, but if you want working segments and campaigns you will also need to install the Mautic cron jobs.

wget https://files.mktg.dev/pub/install-mautic/mautic5-cron-jobs.txt

crontab mautic5-cron-jobs.txt

If you want to know more about Mautic 5 cron jobs you can check these other posts:

Mautic cron jobs for dummies & marketers.
Mautic Cron Jobs: Which Ones to Use.

Got any questions? Got stuck on one of the steps? Anything not working as described in the tutorial? Go ahead and ask in the comments here below!!

And if you want to further advance and improve your Mautic Installation, check this other, more advanced, Mautic Installation guide:
Secure Mautic Installation on a VPS.

Yosu Cadilla

My name is Yosu Cadilla, a Systems Analyst and Platform Engineer for mktg.dev
I discovered Mautic in 2017 and since have specialized in:
– Running Mautic for Marketing Agencies.
– Running large Mautic instances, sometimes
with millions of contacts.
– Helping companies build and optimize their (usually Mautic) runtime infrastructure.

If you are planning on deploying Mautic for your Marketing Agency, or you have a large Mautic Instance…
Let’s have a chat! yosu.cadilla@gmail.com