Layout do Mautic (root, docroot, knobs)
O mpm precisa saber, dentro do container, onde ficam os plugins, o
binário console, o cache e qual usuário web usar. Esses parâmetros são
os knobs.
Knobs e defaults
| Knob | Default | Override |
|---|---|---|
mautic_root |
/var/www/html |
--mautic-root |
plugins_dir |
<root>/plugins (ou auto docroot) |
--plugins-dir |
console |
bin/console (M4+), app/console (M2/3) |
--console |
php_bin |
php |
--php-bin |
web_user |
www-data |
--web-user |
Os defaults são version-aware: o mpm escolhe pela versão Mautic que você
passou no instance add.
O caso docroot (Mautic 5/6 composer)
Instalações Mautic 5/6 feitas pelo "recommended-project" (composer) usam um layout diferente:
- O project root é
/var/www/htmle tem obin/console. - O application dir é
/var/www/html/docroot— é lá que mora oapp/AppKernel.php. - O Mautic carrega plugins de
getApplicationDir()/plugins, ou seja/var/www/html/docroot/plugins, não/var/www/html/plugins.
Se o mpm deployasse no <root>/plugins padrão, os arquivos cairiam num
diretório que o Mautic nunca lê: o install reporta sucesso, mas o
plugin não registra (não aparece na tabela plugins nem em
debug:container).
Detecção automática
Desde a v0.2.1 o mpm detecta esse layout sozinho. Antes do deploy ele sonda o container:
docker exec <container> test -f <root>/docroot/app/AppKernel.phpSe o arquivo existe, o plugins_dir passa a ser <root>/docroot/plugins
automaticamente. Você não precisa configurar nada.
O cache, nesse layout, continua em <root>/var/cache/prod (não sob
docroot) — o mpm já trata isso.
Override manual
Se a detecção não cobrir o seu caso (layout customizado), force o diretório:
mpm --plugins-dir /caminho/real/plugins install queryreport -i prodAtenção: o override por flag vale só para aquela invocação — não persiste entre comandos. Para layouts não-padrão recorrentes, use a flag sempre, ou abra um chamado pra a detecção cobrir o caso.
Como confirmar onde o plugin caiu
# Onde o Mautic realmente lê (procure os bundles core aqui):
mpm console -i prod -- config:dump-reference 2>/dev/null # opcional
docker exec <container> ls /var/www/html/docroot/plugins
# O plugin registrou?
mpm console -i prod -- doctrine:query:sql \
"SELECT bundle, is_missing FROM plugins WHERE bundle LIKE '%Query%'"