Como instalar o Mautic: Ferramenta de Automação de Marketing Open Source

Mautic é uma poderosa ferramenta de Automação de Marketing usada para monitorar e gerenciar campanhas. Ela permite monitorar sites, criar Landing Pages e enviar emails a partir do próprio servidor ou através de uma conexão SMTP customizada além de muitas outras funcionalidades. E o melhor de tudo é que o Mautic é Open Source.

Neste tutorial mostrarei como instalar e fazer a configuração básica inicial em um servidor Linux Debian com ISPConfig e NginX, o mesmo de nossos tutoriais. *Mas caso o seu sistema ou painel de controle seja diferente os passos abaixo podem ser facilmente adaptados.

Para uma melhor experiência crie uma conta para o SMTP relay externo na SparkPost que usaremos na configuração do Mautic. SparkPost permite o envio de até 100 mil emails por mês (número atual), e pode ser usado para campanhas ou emails transacionais.

Mautic: Powerful Marketing Automation

* Este tutorial foi testado em nosso servidor Debian 8 Jessie com ISPConfig 3 e NginX, clique aqui e veja como instalar.

Instalação

A Crie um espaço de site no ISPConfig: Você pode usar um nome de domínio ou subdomínio, mas a minha dica é a de usar um subdomínio pois ficará mais profissional quando fazer chamadas de API ou acessar o painel.

Exemplo: inbound.fatorbinario.com (substitua pelo seu domínio e lembre-se de que é necessário criar essa entrada na tabela DNS do domínio, e caso esteja usando a CloudFlare desative a nuvem para essa entrada).

B Adicione as diretivas NginX abaixo para o Mautic na aba “opções” do site no ISPConfig:

# Desativa os logs de acesso para melhor performance
access_log off;
log_not_found off;

#######################################
#### Start Mautic Specific config #####
#######################################

charset utf-8;

# redirect index.php to root
rewrite ^/index.php/(.*) /$1 permanent;

# redirect some entire folders
rewrite ^/(vendor|translations|build)/.* /index.php break;

# Diretiva principal para o Mautic
location / {
   try_files $uri /index.php$is_args$args;
}

location ~ /app/bundles/.*/Assets/ {
   allow all;
   access_log off;
}

location ~ /(addons|plugins)/.*/Assets/ {
   allow all;
   access_log off;
}

#ATENÇÂO: Para os plugins aparecerem no painel não use as diretivas abaixo
# Deny everything else in /app folder except Assets folder in bundles
location ~ /app/ { deny all; }

# Deny everything else in /addons or /plugins folder except Assets folder in bundles
location ~ /(addons|plugins)/ { deny all; }

# Deny all php files in themes folder
location ~* ^/themes/(.*)\.php {
   deny all;
}

# Deny yml, twig, markdown, init file access
location ~* /(.*)\.(?:markdown|md|twig|yaml|yml|ht|htaccess|ini)$ {
   deny all;
   access_log off;
   log_not_found off;
}

# Deny all attempts to access hidden files/folders such as .htaccess, .htpasswd, .DS_Store (Mac), etc...
location ~ /\. {
   deny all;
   access_log off;
   log_not_found off;
}

# Deny all grunt, composer files
location ~* (Gruntfile|package|composer)\.(js|json)$ {
   deny all;
   access_log off;
   log_not_found off;
}

#######################################
#### End Mautic Specific config #######
#######################################

C Crie um usuário SSH em Jail para baixar e descompactar o arquivo (alternativamente e caso prefira pode fazer por FTP).

D Crie o Banco de Dados e o usuário do DB no painel do ISPConfig para o site que abrigará o Mautic.

E Acesse o terminal SSH com o usuário em jail para fazer download e descompactar o Mautic. Digite os comandos abaixo:

ssh# cd /web; rm index.html; wget --no-check-certificate --level=0 https://www.mautic.org/download/latest; unzip latest; rm latest

* Se der erro de comando não encontrado ao executar o unzip siga este tutorial para liberá-lo aos usuários em jail.

* * Nas perguntas se deseja sobrescrever os arquivos responda “y” + ENTER.

F Na nova versão do Mautic para instalações em NginX é necessário editar o arquivo de configuração php.ini e alterar um parâmetro. Edite o arquivo /etc/php5/fpm/php.ini e altere a linha 703 descomentando ela (retire o ponto de vírgula do início):

always_populate_raw_post_data = -1


Em seguida reinicie o PHP:

ssh# /etc/init.d/php5-fpm restart 
2 Configuração

A Acesse a URL do domínio para começar a configurar.

B Mautic Installation – Environment Check: Deverá estar como “Ready to Install“. Clique em Next Step.

C Mautic Installation – Database Setup:

» Database Driver: <- MySQL PDO

» Database Host: <- localhost

» Database Port:<- 3306

» Database Name:<- Nome do DB (configurado no passo 1D)

» Database Table Prefix:<- deixar em branco (ou coloque um prefixo se desejar)

» Database Username:<- Usuário do DB (configurado no passo 1D)

» Database Password:<- Senha do usuário DB (configurado no passo 1D)

» Deixe as opções de backup padrão e clique em “Next Step

D Mautic Installation – Administrative User:

» Admin Username:<- usuario_admin (este será o usuário admin do painel, altere para um nome de sua preferência)

» Admin Password:<- senha (senha do usuário admin)

» Preencha ainda com o seu Nome, Sobrenome e Endereço de Email e clique em “Next Step“.

E Mautic Installation – Email Configuration:

* Esta configuração será usada como padrão pelo painel podendo ser alterada, ou adicionada por usuário posteriormente.

Who should the email be sent as?

» Nome:<- nome (seu nome ou de sua empresa)

» Email:<-email do sender padrão

How should email be spooled and delivered?

» Email Handling:<- Send Immediately (para enviar imediatamente, ou selecione Queue para enfileirar os envios)

» Mailer Transport:<- Other SMTP Server (para configurar o SMTP manualmente, caso tenha conta nas opções disponíveis poderá usá-la, mas não selecione PHP Mail que por problemas de segurança poderá causar relay de SPAM)

» SMTP Server:<- smtp.sparkpostmail.com (exemplo para o SparkPost)

» Port:<- 587

» Encryption:<- TLS

» Authentication Mode:<- Login

» Username:<- SMTP_Injection (este é o nome de usuário padrão de SMTP do SparkPost)

» Password:<- NUMERO_API (digite o número da API criada no SparkPost)

Well Done! Clique em “Proceed to Mautic” para fazer login e acessar o painel.

3 Triggers Agendados 

Para que os emails sejam disparados e as campanhas atualizadas é necessário agendar alguns “triggers” (disparadores) no Cron. Mostrarei abaixo como fazer isso no ISPConfig 3.

Acesse o painel admin do ISPConfig e clique em Sites no menu. No painel da lateral esquerda clique em “Tarefas no Cron“. Clique em “Adicionar uma nova tarefa no Cron“, teremos que criar 6 tarefas para o site do Mautic:

* O agendamento dessas tarefas diretamente pelo Cron do sistema irá alterar as permissões dos arquivos e o site não irá funcionar corretamente por este motivo agendaremos usando o ISPConfig.

* Substitua inbound.DOMINIO.com.br pelo seu domínio e URL onde o Mautic foi instalado

**TAREFAS CRON FORAM ATUALIZADAS PARA A VERSÃO 2.0

*** Se você estiver instalando o Mautic em servidor próprio (VPS ou dedicado) poderá diminuir os agendamentos abaixo para executar em espaço de 1 a 10 minutos, com exceção da tarefa 7. Os valores em minutos do exemplo são somente para demonstrar como as tarefas devem ser adicionadas.

1a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: */15
» Horas: *
» Dias do mês: *
» Meses: *
» Dias da semana: *
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:campaigns:trigger
» Ativo: <marcado>

2a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: */18
» Horas: *
» Dias do mês: *
» Meses: *
» Dias da semana: *
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:campaigns:rebuild
» Ativo: <marcado>

3a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: */25
» Horas: *
» Dias do mês: *
» Meses: *
» Dias da semana: *
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:emails:send
» Ativo: <marcado>

4a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: */30
» Horas: *
» Dias do mês: *
» Meses: *
» Dias da semana: *
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:email:fetch
» Ativo: <marcado>

5a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: */20
» Horas: *
» Dias do mês: *
» Meses: *
» Dias da semana: *
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:segments:update
» Ativo: <marcado>

6a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: */18
» Horas: *
» Dias do mês: *
» Meses: *
» Dias da semana: *
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:social:monitoring
» Ativo: <marcado>

7a. Tarefa:

» Site Web Parente: <selecione o site do Mautic>
» Minutos: 25
» Horas: 3
» Dias do mês: *
» Meses: *
» Dias da semana: 1
» Comando a executar: /usr/bin/php /var/www/inbound.DOMINIO.com.br/web/app/console mautic:iplookup:download
» Ativo: <marcado>

* A 7a. tarefa executará o download da última versão da base de dados do GEO IP usado para converter o número IP em locais. Note que configuramos a tarefa para que baixe somente uma vez por semana, desta maneira não usaremos tráfego desnecessário do VPS.

* Será necessário criar todas as tarefas para cada instalação de Mautic que estiver no servidor.

Com os agendamentos acima o seu painel de campanhas ficará sempre atualizado.

ATENÇÃO:

Se você seguiu algum tutorial que mostra como deletar/refazer o cache do Mautic, provavelmente executou um comando parecido com este:

/usr/bin/php /var/www/inbound.fatorbinario.com/web/app/console cache:clear

Quando executamos este comando com um usuário diferente do usuário dono do site, em nosso caso webX, os arquivos em /app/cache/prod mudarão de dono apresentando erros de página ao acessar o painel. Para acertar isso acesse o diretório do site e mude o dono e grupo dos arquivos para os mesmos do site.

  • Para acessar as configurações de campanha use o menu lateral esquerdo, e para acessar as configurações gerais clique no símbolo de preferências no canto superior direito.
  • Para alterar o idioma, timezone entre outras clique em “Configurações→Configurações do Sistema”
  • Para cadastrar novos usuários clique em “Usuários”
  • Para verificar o status da instalação clique em “Informações do Sistema”
  • Para cada site que desejar trackear com o Mautic adicione a tag HTML abaixo no arquivo footer (rodapé) do tema ou site que irá monitorar, este será o tracking pixel do Mautic:
<img src="https://inbound.DOMINIO.com.br/mtracking.gif" />

USE SOMENTE o tracking pixel. Aquele javascript de trackeamento fornecido no painel do Mautic faz com o site onde foi instalado fique 10x mais lento.

4 Fix para o File Manager

**DEPRECADO**: Na última versão do Mautic o File Manager foi consertado não havendo necessidade deste fix, porém deixarei o texto abaixo somente para aqueles que ainda não atualizaram a versão.

Um dos bugs mais irritantes reportados pelos leitores aqui do Fator é quando eles tentam criar um modelo de email e deparam-se com o problema no FileManager (ckEditor) da ferramenta. Aparece uma animação no meio da tela mostrando que está carregando os arquivos mas nada acontece. E mesmo consertando o arquivo PHP com o fix temporário publicado no GitHub do projeto não aparece arquivo de imagem algum exibindo uma mensagem “No way”. Siga os passos abaixo para consertar a instalação:

* Somente execute os 2 fix abaixo caso o seu Mautic esteja com este problema. Teste-o abrindo o FileManager.

A Fix para o bug que os arquivos não aparecem e a animação de carregamento fica rodando indefinidamente:

Edite o seguinte arquivo na instalação:

/app/bundles/CoreBundle/Assets/js/libraries/ckeditor/filemanager/connectors/php/filemanager.class.php

E altere a partir da linha 33 desta maneira (somente texto em vermelho):

$request = Request::createFromGlobals();
$container->enterScope('request');
$container->set('request', $request, 'request');

$httpKernel = $container->get('http_kernel');
$event = new GetResponseEvent($httpKernel, $request, HttpKernelInterface::MASTER_REQUEST);
$container->get('event_dispatcher')->dispatch(KernelEvents::REQUEST, $event);

B Fix para o bug que aparece a mensagem “No way” quando carrega o FileManager:

Edite o arquivo:

/app/bundles/CoreBundle/Assets/js/libraries/ckeditor/filemanager/connectors/php/filemanager.class.php

E altere a linha 1280:

Comente-a inserindo "//" no início da linha e logo abaixo cole a nova linha para o fix desta maneira:

//return substr(realpath($path).DIRECTORY_SEPARATOR, 0, strlen($this->path_to_files)) == (realpath($this->path_to_files).DIRECTORY_SEPARATOR);

return file_exists($path);
 FIX para o ERROR 500 – Internal Server Error! 

Já faz algumas semanas que os desenvolvedores do Mautic lançaram a versão 2.0, eles estão fazendo um bom trabalho e adicionaram várias novas funcionalidades para a ferramenta. O problema é que a partir daquela versão ocorre um Erro 500 toda vez que atualizamos o Mautic ou até mesmo quando fazemos uma nova instalação.

Isso acontece porque há uma instrução de código para números aleatórios (randômicos) dentro dos scripts PHP que os desenvolvedores devem ter esquecido de reconfigurar ou até hoje não viram que ficou deprecada.

Para meus clientes eu mesmo conserto ele toda vez que precisa atualizar ou em novas instalações. Hoje decidi deixar aqui um fix aqui para que vocês também possam continuar usando o Mautic até eles acertarem o código em definitivo.

O problema todo está em uma pasta chamada /vendor/paragonie/random_compat substitua o conteúdo dela com uma versão mais antiga ou copie de uma instalação que esteja funcionando. Note que o erro desaparecerá, e note também que você deverá fazer isso toda vez que atualizar o Mautic.

* Caso você não tenha os arquivos da versão antiga deixe um comentário que envio o link para baixar.

FIX para: mautic.ERROR: Error: Allowed memory size of xxxxxxxx bytes exhausted (tried to allocate xxxxxxx bytes)

Mais um fix. Para este caso aumente o limite da memória no PHP.ini.

Edite o arquivo /etc/php5/fpm/php.ini e altere a linha 393 para:

memory_limit = 256M

Reinicie o PHP em seguida:

> /etc/init.d/php5-fpm restart

Gerenciamento em infraestrutura de Servidores Cloud VPS e Dedicados. Planos mensais acessíveis e consultoria diferenciada para agências de marketing. Envie um email para [email protected] e solicite uma análise gratuita!