Mautic
How To Build And Configure Mautic 3, Mautic is an open-source, marketing automation system and is widely used as an automated email marketing solution.
What do we mean by automated email marketing?
If you have a little bit of experience in email marketing then you’ll be familiar with the email marketing plans consist of two parts:
The Sender: this is the technical part of the SMTP server. You can send emails with the permission of this server online.
An Administration software: where you can configure and manage your email list, advertising campaigns, monitor and analyze results, manage your sending servers, and so on. So, we can connect both to get an email marketing plan.
In this article, I’ll show you how to build Mautic and here the administration is Mautic.
Get Ready To Install Mautic
The requirement to build Mautic
To build Mautic we should have two things:
- A VPS Server to install Mautic on.
- Domain Name for your setup use.
You are required to get a VPS server first to install Mautic on. You can get a VPS server from the company of your own choice. Moving on, we’ll use Contabo services in this guide.
After you get the VPS server just create a server with the following specifications:
- Ubuntu 16/18 x64 as your operating system.
- 1 CPU/ 1 GB RAM is enough for starting and you can upgrade later.
Get a Domain Name
If you don’t have a domain then getting a domain is just a piece of cake. All you just need to go to any of the domain registration company and buy a domain name. Here are the names of some company from where you can get your domain register:
GodaddyEnom
Freenom
Namecheap
Point Domain to VPS.
Before proceeding, you’ve to point your domain or subdomain to your IP address. But here I’ll point subdomain “mautic.example.me” to my Contabo IP address. OK now we have a domain and VPS server, let’s start the installation process.
You can use an SSH client like putty to connect to your server and also Install Apache, PHP, and MySQL which are the pre requests for hosting any PHP application like mautic.
Install Apache2 Web Server
Install Apache Web Server on your VPS by running the following command:
sudo apt update
sudo apt install apache2
After the installation complete, enable the service by running the following command.
sudo systemctl restart apache2.service
sudo systemctl enable apache2.service
Then inspect the working of Apache on your server by browsing the VPS IP address (http://Your_IP_Address).
The default page should be like this:
Install MariaDB (MySQL) Database Server
Mautic also requires a Database to save data because it’s working is not much different from PHP System.
To install MariaDB run the commands below (Choose between Ubuntu 16,18):
Run these on Ubuntu 16 LTS:
sudo apt-get install software-properties-common gnupg-curl
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://mirrors.piconets.webwerks.in/mariadb-mirror/repo/10.5/ubuntu xenial main'
sudo apt update
sudo apt-get install mariadb-server
Run these on Ubuntu 18 LTS:
sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.piconets.webwerks.in/mariadb-mirror/repo/10.5/ubuntu bionic main'
sudo apt update
sudo apt-get install mariadb-server
You can stop MariaDB by running the following command.
Run these on Ubuntu 16 LTS
sudo systemctl stop mysql.service
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
Run these on Ubuntu 18 LTS
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
After that, create a root password and disallow the remote root to secure your MariaDB by running the following command.
sudo mysql_secure_installation
When prompted, enter these answers:
- For Socket password enter N
- In current password input just press Enter
- For set a root password [Y/n] enter: Y
- Create a secure new password if you’re asked to enter a new password
- Re-enter new password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Restart MariaDB Mysql Service
To test if MariaDB is installed, type the command below to logon to MariaDB server
sudo mysql -u root -p
Then login by typing the password you created above. If it works you’ll receive the welcome message like this:
- Install PHP And Related Modules
Mautic is a PHP based script so, we have to install some modules and PHP on the server. In this guide, we’ll install PHP 7.4 but you can use any version you want. Just change “7.4” to 7.X” in the commands.
Add the repository of the third party to install PHP 7.4 by running the following command.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
After that update this:
sudo apt update
Then install PHP 7.4 and related modules. By running the following commands
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-bcmath php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-imap
Run the following command:
sudo apt install php-pcov
Now you’ve installed PHP, Open WinSCP to edit the php.ini file. WinSCP works over SSH so, it will make things a lot easier with putty.
Apply changes by following these guidelines:
- Open WinSCP and use your server IP/Name and root credentials to connect to your server.
- Then go to “/etc/php/7.X/apache2/” where you can find the “php.ini” configuration file.
- Right-click on “php.ini” and Click Edit.
- Then, make some changes in the following lines below in the file and save.
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M //You can increase this if you server can handle
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/NewYork //Set your Time Zone here
- After applying these changes, save and close the files.
- Then restart apache service again
sudo systemctl restart apache2.service
- Create Mautic Database
Now our server is ready to install so, we need to create a Database for Mautic in MariaDB.
To login, MariaDB MySql database server we’ve to run the following commands.
sudo mysql -u root -p
Then create a database called mautic (or any name you want)
CREATE DATABASE mautic;
Create a database user called mautic with a new password
CREATE USER 'mautic'@'localhost' IDENTIFIED BY 'Enter_Your_Password_Here'
Then grant the user full access to the database.
GRANT ALL ON mautic.* TO 'mautic'@'localhost' IDENTIFIED BY 'Enter_your_password_here' WITH GRANT OPTION;
Finally, save your changes and exit.
FLUSH PRIVILEGES; EXIT
- Download And Install Mautic
To get the latest version of Mautic you can use Github repository. So, install composer, Curl and other dependencies.
Run these commands for installation.
#First Command:
sudo apt install curl git
#Second Command:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.13
When the operation finishes, replace the directory with “/var/www/html” by running the following command:
cd /var/www/html
Then Download Mautic package:
sudo git clone https://github.com/mautic/mautic.git
Now Install Mautic by running the following commands:
cd /var/www/html/mautic sudo composer instal
After the installation finishes, get the permission to set some files by running the following commands.
sudo chown -R www-data:www-data /var/www/html/mautic/
sudo chmod -R 755 /var/www/html/mautic/
Configure Apache2 Web Server
Now we’ve installed the Mautic. So, you’ve to configure Apache to access the Mautic by using your domain name. How To Build And Configure Mautic 3.
In order to do so first follow the below steps:
- Open WinSCP again and navigate to this directory: /etc/apache2/sites-available/.
- Then, create a new file and name it “mautic.example.com.conf” to change your domain.
- Create mautic.conf
- Open mautic.conf
- Copy and paste the content below into the file and save.
<VirtualHost *:80>
ServerAdmin admin@mautic.example.com
DocumentRoot /var/www/html/mautic
ServerName mautic.example.com
ServerAlias mautic.example.com
<Directory /var/www/html/mautic/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
- Replace this domain with your own domain. Here it is mautic.example
- .com”
- Enable mautic configuration in apache and restart the service.
Now finish the setup by running the following Setup to How To Build And Configure Mautic 3.
sudo a2ensite mautic.example.com.conf
sudo a2enmod rewrite
sudo systemctl restart apache2.service
Now go to the Web browser and navigate to your server name like this:
//mautic.example.com
You must see the setup completion wizard below:
Enter the database and your admin login information to continue the setup process.
- Configure Cron Jobs
Now we’ve installed the Mautic, we just need to setup the Cron jobs.
What are Cron Jobs?
Simply Cron Jobs is an organized activity that works automatically on a schedule.
For example, if you create an automated email campaign that run every week. You need a function that will automatically runs in the background to boost this campaign, this is the Cron job role, so do the setup.
Mautic needs many Cron functions, some are required and some are optional, check out the list of all Cron jobs here in mautic. All you just have to copy the jobs below and paste them on your server to put them into action.
#Segments Every 2 Minutes
*/2 * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:segments:update
*/3 * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:import
#Campaigns (Every 1 Minute)
* * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:campaigns:update
* * * * * root /usr/bin/php /var/www/html/mautic/bin/console
mautic:campaigns:trigger
* * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:messages:send
#Process Email Queue Every 5 Minutes
*/5 * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:emails:send
#Fetch and Process Monitored Email Every 10 Minutes
*/10 * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:email:fetch
#Process Email Queue Every 5 Minutes
*/5 * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:emails:send
#Fetch and Process Monitored Email Every 10 Minutes
*/10 * * * * root /usr/bin/php /var/www/html/mautic/bin/console mautic:email:fetch
Where to paste them?
- Paste the jobs on your server by following these steps:
- Open WinSCP
- Go to“/etc” directory click on the “crontab” file
- Click it and you’ll get the edit option
- Then paste the desire functions in it and save it.
- After that click on exist, the process is done here!
Optional: Secure with a Free SSL
SSL certificates are used to encrypt the traffic between the server and client, providing additional security for users accessing your application. Let’s Encrypt provides an easy way to install trusted certificates for free.
Connect to your server using the Putty SSH client.
Install Let’s Encrypt Client
You can get the Let’s Encrypt Certificate through client software running on your server.
First, add the repository to install Cerbot (official client):
sudo add-apt-repository ppa:certbot/certbot
You’ll need to press ENTER to accept.
Then, to get the new package info just update the list.
sudo apt-get update
Install Certbot’s Apache package:
sudo apt install python-certbot-apache
Certbot is now ready to be used.
Build SSL Certificate
Cerbot is quite easy to generate the SSL certificate for Apache. A new SSL certificate will be provided automatically to the client that is valid for the domains which are provided in the form of parameters.
Simply run the following command to change the domain:
sudo certbot --apache -d mautic.example.com
Then you’ve to provide an email address for lost key recovery and notices to get the authority to choose between enabling both http and https access or forcing all requests to redirect to https. If you don’t have a specific need for unencrypted traffic then it will be safest to require.
Test your website now. Here I’ll test my website by browsing this “https://mautic.example.com” This is the guide about How To Build And Configure Mautic 3.
Good Luck!
If you liked this article and want to read more of these, please subscribe to our newsletter and follow us on Facebook, YouTube, and Twitter.