Buscar

PHPNotesForProfessionals

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 198 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 198 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 198 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

phpMyAdmin Documentation
Release 4.8.0-dev
The phpMyAdmin devel team
jan 05, 2018
Sumário
1 Introdução 3
1.1 Funções suportadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Teclas de atalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Uma palavra sobre os usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Requisitos 5
2.1 Servidor web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Navegador Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Instalação 7
3.1 Distribuições do Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Instalar no Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Instalando do Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 Instalar usando o Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.5 Instalar usando Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.6 Instalação Rápida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.7 Verificando releases do phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.8 Armazenamento de configurações do phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.9 Atualizando uma versão antiga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.10 Usando os modos de autenticação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.11 Protegendo sua instalação do phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.12 Usando SSL para conexão ao servidor de banco de dados . . . . . . . . . . . . . . . . . . . . . . . . 28
3.13 Problemas conhecidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Configuração 29
4.1 Configurações básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Configurações de conexão de servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Configurações genéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4 Opções de autenticação por cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.5 Painel de navegação de instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.6 Painel principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.7 Estrutura de banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.8 Modo de navegação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.9 Modo de edição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.10 Configurações de exportação e importação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
i
4.11 Configurações de apresentação de abas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.12 Opções de PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.13 Linguagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.14 Configurações de servidor web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.15 Configurações de tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.16 Customização de design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.17 Campos de texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.18 Configurações de caixa de query SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.19 Diretórios de importar/salvar/subir do servidor web . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.20 Configurações de vários monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.21 Títulos de páginas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.22 Configurações de gerente de temas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.23 Queries padrão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.24 Configurações MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.25 Opções padrão para Transformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.26 Console settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.27 Desenvolvedor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.28 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5 Guia de Usuário 87
5.1 Configurando o phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.2 Autenticação de dois fatores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3 Transformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4 Favoritos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5 Gerenciamento de usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.6 Relações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.7 Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.8 Importar e exportar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.9 Temas Personalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.10 Outras fontes de informação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6 FAQ - Perguntas Frequentes 111
6.1 Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2 Configuração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
6.3 Limitações conhecidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.4 ISPs, instalações multi-usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.5 Navegadores ou SO cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.6 Usando o phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.7 Projeto phpMyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.8 Segurança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.9 Sincronização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7 Informações aos Desenvolvedores 145
8 Política de segurança 147
8.1 Vulnerabilidades típicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.2 Relatando problemas de segurança . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 148
9 Distribuição e empacotamento do phpMyAdmin 151
9.1 Bibliotecas externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
10 Direitos autorais 153
10.1 Licenças de terceiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
11 Créditos 155
ii
11.1 Créditos, em ordem cronológica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
11.2 Tradutores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
11.3 Tradutores da documentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.4 Créditos Originais da Versão 2.1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
12 Glossário 173
13 Índices e tabelas 181
iii
iv
phpMyAdmin Documentation, Release 4.8.0-dev
Conteúdo:
Sumário 1
phpMyAdmin Documentation, Release 4.8.0-dev
2 Sumário
CAPÍTULO 1
Introdução
O phpMyAdmin pode gerenciar um servidor MySQL inteiro (precisa de um super-usuário), bem como um único
banco de dados. Para fazer este último, você precisará de um usuário MySQL corretamente configurado que possa ler
e escrever somente no banco de dados desejado. Cabe a você pesquisar no manual do MySQL as partes relacionadas.
1.1 Funções suportadas
Atualmente o phpMyAdmin pode:
• navegar através e eliminar bancos de dados, tabelas, views, colunas e índices
• mostrar múltiplos conjuntos de resultados através de procedimentos armazenados ou queries
• criar, copiar, eliminar, renomear e alterar bancos de dados, tabelas, colunas e índices
• manutenção de servidores, bancos de dados e tabelas, com propostas para configurações de servidor
• executar, editar e marcar qualquer declaração SQL, até mesmo consultas em lote
• carregar arquivos de texto em tabelas
• criar1 e ler despejos de tabelas
• exportar1 dados para vários formatos: CSV , XML, PDF, ISO/IEC 26300 - textos e planilhas OpenDocument,
Microsoft Word 2000, e formatos LATEX
• importar dados e estruturas MySQL de planilhas OpenDocument, assim como de arquivos XML, CSV e SQL
• administrar vários servidores
• gerenciar usuários e privilégios do MySQL
• verificar a integridade referencial em tabelas MyISAM
• criar consultas complexas conectando automaticamente as tabelas necessárias, utilizando o Query-by-example
(QBE)
1 O phpMyAdmin pode comprimir despejos em (formatos Zip, GZip ou RFC 1952) e exportações CSV caso você use o PHP com suporte a Zlib
(--with-zlib). O suporte adequado pode precisar também de alterações no php.ini.
3
phpMyAdmin Documentation, Release 4.8.0-dev
• criar gráficos PDF do layout do seu banco de dados
• pesquisar em um banco de dados inteiro ou em apenas em uma parte
• converter dados armazenados em qualquer formato usando um conjunto de funções pré-definidas, como exibir
dados armazenados no formato BLOB como imagem ou como link para download
• controlar alterações em bancos de dados, tabelas e visualizações
• suportar tabelas InnoDB e chaves estrangeiras
• suporte a mysqli, a extensão melhorada do MySQL; veja 1.17 Quais versões de bancos de dados são suportadas
pelo phpMyAdmin?
• criar, editar, chamar, exportar e apagar processos e funções armazenadas
• criar, editar, exportar e apagar eventos e gatilhos
• disponível em 80 linguagens diferentes
1.2 Teclas de atalho
Atualmente o phpMyAdmin suporta os seguintes atalhos:
• k - Abrir consola
• h Ir à página principal
• Configurações genéricas
• d + s Seguir para a estrutura da base de dados (Assumindo que você está numa página relacionada a bases de
dados)
• d + f - Procurar na base de dados (Assumindo que você está numa página relacionada a bases de dados)
• t + s - Ir para a estrutura de tabelas (Apenas estando numa página relacionada a bases de dados)
• t + f - Procurar tabela (Apenas estando numa página relacionada a bases de dados)
• backspace - Leva você a uma página anterior.
1.3 Uma palavra sobre os usuários
Muitas pessoas têm dificuldade em compreender o conceito de gestão de usuários em relação ao phpMyAdmin.
Quando um usuário se conecta ao phpMyAdmin, o nome de usuário e a senha são passados diretamente ao MySQL. O
phpMyAdmin não faz gestão de contas por si só (exceto quando é permitida a manipulação das informações da conta
de usuário do MySQL); todos os usuários devem ser usuários válidos do MySQL.
4 Capítulo 1. Introdução
https://www.phpmyadmin.net/translations/
CAPÍTULO 2
Requisitos
2.1 Servidor web
Considerando que a interface do phpMyAdmin funciona exclusivamente no seu navegador, você precisará de um
servidor web (como o Apache nginx IIS) onde instalar os arquivos do phpMyAdmin.
2.2 PHP
• Você precisa do PHP 5.5.0 ou mais recente, com suporte a session, a extensão SPL (Standard PHP Library),
hash, ctype e suporte a JSON.
• A extensão mbstring (vide mbstring) é fortemente recomendada por questões de performance.
• Para obter suporte a upload de arquivos ZIP, você precisa da extensão zip do PHP.
• Você precisa de suporte GD2 no PHP para exibir miniaturas inline de JPEGs (“image/jpeg: inline”) com sua
proporção original.
• Ao usar a autenticação por cookies (o padrão), a extensão openssl é altamente recomendada.
• Para suporte a barras de progresso de upload, veja 2.9 Vendo uma barra de progresso de upload.
• Para usar a importação de arquivos XML e planilhas Open Document, você precisará da extensão libxml
<https://secure.php.net/libxml>.
• Para suportar reCAPTCHA na página de login, você precisará da extensão openssl
<https://secure.php.net/openssl>.
• Para suportar visualização da versão mais recente do phpMyAdmin você precisará habilitar allow_url_open
no arquivo php.ini ou ter a extensão curl.
Ver também:
1.31 Quais versões do PHP são suportadas pelo phpMyAdmin?, Usando os modos de autenticação
5
https://secure.php.net/openssl
https://secure.php.net/curl
phpMyAdmin Documentation, Release 4.8.0-dev
2.3 Banco de dados
O phpMyAdmin suporta bancos de dados compatíveis com o MySQL.
• MySQL 5.5 ou mais recente
• MariaDB 5.5 ou mais recente
Ver também:
1.17 Quais versões de bancos de dados são suportadas pelo phpMyAdmin?
2.4 Navegador Web
Para acessar o phpMyAdmin, você precisa de um navegador web com cookies e JavaScript habilitado.
Você precisa de um navegador mais atual, que suporte jQuery 2.0. Veja quais são suportados em <https://jquery.com/
browser-support/>.
6 Capítulo 2. Requisitos
https://jquery.com/browser-support/
https://jquery.com/browser-support/
CAPÍTULO 3
Instalação
O phpMyAdmin não aplica quaisquer métodos de segurança especiais ao servidor de banco de dados MySQL. Ele
ainda depende do administrador do sistema para conceder as permissões adequadas nos bancos de dados MySQL. A
página Users do phpMyAdmin pode ser utilizada para isso.
Aviso: Usuários Mac devem saber que se você está em uma versão anterior ao Mac OS X, o Stuffit salva os forma-
tos Mac vazios. Então você terá que salvar novamente no estilo BBEdit para Unix TODOS os scripts phpMyAdmin
antes de enviá-los ao seu servidor, já que o PHP parece não funcionar com o caractere de término de linhas (“\r”)
do Mac.
3.1 Distribuições do Linux
O phpMyAdmin é incluído na maioria das distribuições Linux. É recomendado usar os pacotes da distribuição quando
possível - eles normalmente fornecem integração com a sua distribuição e você irá receber automaticamente atualiza-
ções de segurança de sua distribuição.
3.1.1 Debian
Os repositórios do Debian incluem um pacote do phpMyAdmin, porém o arquivo de configuração está localizado em /
etc/phpmyadmin e podem haver algumas diferenças da documentação oficial do phpMyAdmin. Especificamente:
• Configuração de servidor web (funciona com Apache e lighttpd).
• Criação de Armazenamento de configurações do phpMyAdmin usando dbconfig-common.
• Protegendo o script de instalação, veja Script de instalação no Debian, Ubuntu e derivativos.
Ver também:
Maisinformações podem ser encontradas em README.Debian (se estiver instalado como /usr/share/doc/
phmyadmin/README.Debian com o pacote).
7
https://anonscm.debian.org/cgit/collab-maint/phpmyadmin.git/tree/debian/README.Debian
phpMyAdmin Documentation, Release 4.8.0-dev
3.1.2 OpenSUSE
O OpenSUSE já vem com um pacote do phpMyAdmin, apenas instale os pacotes do openSUSE Build Service.
3.1.3 Ubuntu
O Ubuntu tem um pacote do phpMyAdmin, mas se você quiser usar uma versão mais recente, você pode usar pacotes
do PPA do phpMyAdmin.
Ver também:
Os pacotes são os mesmos que em Debian. Por favor, verifique a documentação para mais detalhes.
3.1.4 Gentoo
O Gentoo traz o pacote do phpMyAdmin, tanto em uma configuração de fábrica quanto um com configuração
webapp-config. Use emerge dev-db/phpmyadmin para instalar.
3.1.5 Mandriva
O Mandriva traz o pacote do phpMyAdmin na sua branch contrib e pode ser instalado via o Centro de Controle de
sempre.
3.1.6 Fedora
O Fedora traz o pacote do phpMyAdmin, mas saiba que o arquivo de configuração é guardado em /etc/
phpmyadmin/ e pode ter algumas diferenças da documentação oficial do phpMyAdmin.
3.1.7 Red Hat Linux Empresarial
O próprio Red Hat Linux Empresarial e seus derivados como CentOS não trazem o phpMyAdmin, mas o repositório
do Fedora Extra Packages for Enterprise Linux (EPEL) fará isso, caso ele esteja habilitado. Mas saiba que o arquivo
de configuração está guardado em /etc/phpmyadmin/ e poderá ter algumas diferenças da documentação oficial
do phpMyAdmin.
3.2 Instalar no Windows
O jeito mais fácil de obter o phpMyAdmin no Windows é usar produtos de terceiros que incluem o phpMyAdmin
junto com um banco de dados e servidor web como o XAMPP.
Você pode ler mais sobre essas opções na Wikipédia.
3.3 Instalando do Git
Você poderá clonar o código-fonte mais recente do phpMyAdmin de https://github.com/phpmyadmin/
phpmyadmin.git:
8 Capítulo 3. Instalação
https://software.opensuse.org/package/phpMyAdmin
https://launchpad.net/~nijel/+archive/ubuntu/phpmyadmin
https://fedoraproject.org/wiki/EPEL
http://fedoraproject.org/wiki/EPEL/FAQ#howtouse
http://www.apachefriends.org/en/xampp.html
https://en.wikipedia.org/wiki/List_of_AMP_packages
phpMyAdmin Documentation, Release 4.8.0-dev
git clone https://github.com/phpmyadmin/phpmyadmin.git
Adicionalmente, você precisa instalar componentes obrigatórios usando a ferramenta Composer:
composer update
Se você não pretende desenvolver, você pode ignorar a instalação das ferramentas de desenvolvedor invocando:
composer update --no-dev
3.4 Instalar usando o Composer
Você pode instalar o phpMyAdmin usando a ferramenta Composer, desde a 4.7.0 as versões são automaticamente
espelhadas para o repositório Packagist padrão.
Nota: O conteúdo do repositório Composer é automaticamente gerado separadamente das releases, portanto, o
conteúdo não precisa ser 100% o mesmo de quando você baixou o tarball. Não devem haver diferenças funcionais,
contudo.
Para instalar o phpMyAdmin execute:
composer create-project phpmyadmin/phpmyadmin
Alternativamente, você pode usar nosso próprio repositório composer, que contém os tarballs das releases e está
disponível em <https://www.phpmyadmin.net/packages.json>:
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.
→˓net/packages.json --no-dev
3.5 Instalar usando Docker
O phpMyAdmin vem com uma imagem Docker, que você pode facilmente implementar. Você pode transferi-la
utilizando:
docker pull phpmyadmin/phpmyadmin
O servidor phpMyAdmin irá ouvir na porta 80. Ele suporta várias formas de configurar o link para o servidor de
banco de dados, seja pelo recurso de link do Docker, vinculando seu container do banco de dados ao db``para o
phpMyAdmin (especificando ``--link your_db_host:db) ou por variáveis de ambiente (neste caso
cabe a você configurar a rede no Docker para permitir que o container phpMyAdmin acesse o container do banco de
dados através da rede).
3.5.1 Variáveis de ambiente do Docker
Você pode configurar vários recursos do phpMyAdmin usando variáveis de ambiente:
PMA_ARBITRARY
Permite que você informe um nome de host do servidor de banco de dados no formulário de login.
Ver também:
3.4. Instalar usando o Composer 9
https://getcomposer.org/
https://getcomposer.org/
https://packagist.org/
https://www.phpmyadmin.net/packages.json
phpMyAdmin Documentation, Release 4.8.0-dev
$cfg['AllowArbitraryServer']
PMA_HOST
Nome de host ou endereço IP do servidor de banco de dados a ser utilizado.
Ver também:
$cfg['Servers'][$i]['host']
PMA_HOSTS
Nomes de host ou endereços IP dos servidores de banco de dados que serão utilizados, separados por vírgulas.
Nota: Usado apenas se PMA_HOST está vazio.
PMA_VERBOSE
Nome extenso do servidor de banco de dados.
Ver também:
$cfg['Servers'][$i]['verbose']
PMA_VERBOSES
Nomes extensos dos servidores de banco de dados, separados por vírgula.
Nota: Usado somente se PMA_VERBOSE está vazio.
PMA_USER
Nome do usuário a ser utilizado para Modo de autenticação por configuração.
PMA_PASSWORD
Senha a ser utilizada para Modo de autenticação por configuração.
PMA_PORT
Porta do servidor de banco de dados a ser utilizado.
PMA_PORTS
Portas dos servidores de banco de dados a serem utilizados, separadas por vírgula.
Nota: Usado apenas se PMA_PORT estiver vazio.
PMA_ABSOLUTE_URI
O endereço qualificado (https://pma.example.net/) onde o proxy reverso torna o phpMyAdmin dis-
ponível.
Ver também:
$cfg['PmaAbsoluteUri']
Por padrão, Modo de autenticação por cookies é usado, mas se PMA_USER e PMA_PASSWORD estiverem definidos,
ele muda para Modo de autenticação por configuração.
Nota: As credenciais que você precisa para fazer login são armazenadas no servidor MySQL, no caso de imagem
do Docker existem várias maneiras de configurá-lo (por exemplo, MYSQL_ROOT_PASSWORD ao iniciar o container
MySQL). Por favor, verifique a documentação para container MariaDB or container MySQL.
10 Capítulo 3. Instalação
https://hub.docker.com/r/_/mariadb/
https://hub.docker.com/r/_/mysql/
phpMyAdmin Documentation, Release 4.8.0-dev
3.5.2 Personalizando a configuração
Além disso, a configuração pode ser modificada pelo /etc/phpmyadmin/config.user.inc.php.
Se esse arquivo existir, ele será carregado depois que a configuração for gerada a partir das va-
riáveis de ambiente acima, para que você possa substituir qualquer variável de configuração. Essa
configuração pode ser adicionada como um volume ao invocar o Docker usando os parâmetros -v
/some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php.
Observe que o arquivo de configuração fornecido é aplicado após Variáveis de ambiente do Docker, mas você pode
substituir qualquer um dos valores.
Por exemplo, para alterar o comportamento padrão da exportação CSV, você pode usar o seguinte arquivo de configu-
ração:
<?php
$cfg['Export']['csv_columns'] = true;
?>
You can also use it to define server configuration instead of using the environment variables listed in Variáveis de
ambiente do Docker:
<?php
/* Override Servers array */
$cfg['Servers'] = [
1 => [
'auth_type' => 'cookie',
'host' => 'mydb1',
'port' => 3306,
'verbose' => 'Verbose name 1',
],
2 => [
'auth_type' => 'cookie',
'host' => 'mydb2',
'port' => 3306,
'verbose' => 'Verbose name 2',
],
];
Ver também:
Veja Configuração para uma descrição detalhada das opções de configuração.
3.5.3 Volumes no Docker
Você pode usar os seguintes volumes para personalizar o comportamento da imagem:
/etc/phpmyadmin/config.user.inc.php
Pode ser usado para configurações adicionais, veja o capítulo anterior para mais detalhes.
/sessions/
Diretório onde as sessões PHP são armazenadas. Você pode querer compartilhar isso, por exemplo, ao
usar Modo de autenticação tradicional.
/www/themes/
Diretório onde o phpMyAdmin procura pelos temas. Por padrão, apenas os fornecidos com o phpMyAd-
min são incluídos, mas você pode incluir temas adicionais do phpMyAdmin (veja Temas Personalizados)
usando volumes do Docker.
3.5. Instalarusando Docker 11
phpMyAdmin Documentation, Release 4.8.0-dev
3.5.4 Exemplos do Docker
Para conectar o phpMyAdmin a um determinado servidor use:
docker run --name myadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
Para conectar o phpMyAdmin a mais servidores use:
docker run --name myadmin -d -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 -p 8080:80
→˓phpmyadmin/phpmyadmin
Para usar opção arbitrária do servidor:
docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 -e PMA_ARBITRARY=1
→˓phpmyadmin/phpmyadmin
Você também pode conectar o container do banco de dados usando o Docker:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin/
→˓phpmyadmin
Rodando com configurações adicionais:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/
→˓directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin/
→˓phpmyadmin
Rodando com temas adicionais:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /custom/
→˓phpmyadmin/theme/:/www/themes/theme/ phpmyadmin/phpmyadmin
3.5.5 Usando docker-compose
Alternativamente, você também pode usar o docker-compose com o docker-compose.yml de <https://github.com/
phpmyadmin/docker>. Isto irá executar o phpMyAdmin com um servidor arbitrário - permitindo a você especificar o
servidor MySQL/MariaDB na página de inicio de sessão.
docker-compose up -d
3.5.6 Personalizando o arquivo de configuração usando o docker-compose
Você pode usar um arquivo externo para personalizar a configuração do phpMyAdmin e passá-lo usando a diretiva de
volumes:
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
- PMA_ARBITRARY=1
restart: always
ports:
- 8080:80
volumes:
12 Capítulo 3. Instalação
https://github.com/phpmyadmin/docker
https://github.com/phpmyadmin/docker
phpMyAdmin Documentation, Release 4.8.0-dev
- /sessions
- ~/docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
- /custom/phpmyadmin/theme/:/www/themes/theme/
Ver também:
Personalizando a configuração
3.5.7 Rodando por trás de um haproxy em um subdiretório
Quando você quer expor o phpMyAdmin rodando em um container Docker em um subdiretório, você precisa reescre-
ver o caminho da solicitação no servidor que faz o proxy das solicitações.
Por exemplo, usando haproxy, isso pode ser feito como:
frontend http
bind *:80
option forwardfor
option http-server-close
### NETWORK restriction
acl LOCALNET src 10.0.0.0/8 192.168.0.0/16 172.16.0.0/12
# /phpmyadmin
acl phpmyadmin path_dir /phpmyadmin
use_backend phpmyadmin if phpmyadmin LOCALNET
backend phpmyadmin
mode http
reqirep ^(GET|POST|HEAD)\ /phpmyadmin/(.*) \1\ /\2
# phpMyAdmin container IP
server localhost 172.30.21.21:80
Ao usar o traefik, algo como o seguinte deve funcionar:
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "(http:\\/\\/[^\\/]+\\/([^\\?\\.]+)[^\\/])$"
replacement = "$1/"
[backends]
[backends.myadmin]
[backends.myadmin.servers.myadmin]
url="http://internal.address.to.pma"
[frontends]
[frontends.myadmin]
backend = "myadmin"
passHostHeader = true
[frontends.myadmin.routes.default]
rule="PathPrefixStrip:/phpmyadmin/;AddPrefix:/"
3.5. Instalar usando Docker 13
phpMyAdmin Documentation, Release 4.8.0-dev
Você deve então especificar PMA_ABSOLUTE_URI na configuração do docker-compose:
version: '2'
services:
phpmyadmin:
restart: always
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
hostname: phpmyadmin
domainname: example.com
ports:
- 8000:80
environment:
- PMA_HOSTS=172.26.36.7,172.26.36.8,172.26.36.9,172.26.36.10
- PMA_VERBOSES=production-db1,production-db2,dev-db1,dev-db2
- PMA_USER=root
- PMA_PASSWORD=
- PMA_ABSOLUTE_URI=http://example.com/phpmyadmin/
3.6 Instalação Rápida
1. Escolha um kit de distribuição adequado na página de Downloads do phpmyadmin.net. Alguns kits contêm
somente as mensagens em Inglês, outros contêm todos os idiomas no formato UTF-8 (este é o recomendado na
maioria das situações), outros contêm todos os idiomas e todos os conjuntos de caracteres. Vamos supor que
você escolheu um kit cujo nome se parece com phpMyAdmin-x.x.x-all-languages.tar.gz.
2. Certifique-se de que você baixou um arquivo autêntico, veja Verificando releases do phpMyAdmin.
3. Descompacte a distribuição (não se esqueça de descompactar os subdiretórios): tar -xzvf
phpMyAdmin_x.x.x-all-languages.tar.gz no documento raiz de seu servidor. Se você não tem
acesso direto ao documento raiz, coloque os arquivos em um diretório em sua máquina local e, após a etapa 4,
transfira o diretório para seu servidor web utilizando, por exemplo, o protocolo ftp.
4. Certifique-se que todos os scripts possuam o dono apropriado (caso o PHP seja executado em modo de segurança
com alguns scripts tendo o proprietário diferente de outros scripts, poderá haver um problema). Veja a 4.2 Qual
o meio preferido de tornar o phpMyAdmin seguro contra acessos maliciosos? e a 1.26 Eu acabei de instalar
o phpMyADmin no documento raiz do IIS mas eu recebo o erro “Nenhum arquivo de entrada especificado”
quando tento rodar o phpMyAdmin. para sugestões.
5. Agora você deve configurar sua instalação. Existem dois métodos que podem ser utilizados. Tradicionalmente,
os usuários têm que modificar uma cópia do arquivo config.inc.php manualmente, mas agora um script de
instalação no estilo assistente é fornecido para aqueles que preferem uma instalação gráfica. Criar um arquivo
config.inc.php continua sendo a maneira mais rápida para iniciar e é necessária para certas funcionalida-
des avançadas.
3.6.1 Criando o arquivo manualmente
Para criar manualmente o arquivo, basta usar o seu editor de texto para criar o arquivo config.inc.php (você pode
copiar o config.sample.inc.php para obter um arquivo com configurações mínimas) no diretório principal
do phpMyAdmin (o que contém o index.php). O phpMyAdmin carrega primeiro o libraries/config.
default.php e então, substitui estes valores com o que for encontrado em config.inc.php. Se o valor padrão
de uma determinada configuração estiver ok, então não haverá necessidade de incluí-lo no config.inc.php. Você
provavelmente precisa só de algumas diretivas para começar; uma configuração simples pode se parecer assim:
14 Capítulo 3. Instalação
phpMyAdmin Documentation, Release 4.8.0-dev
<?php
// use here a value of your choice at least 32 chars long
$cfg['blowfish_secret'] = '1{dd0`<Q),5XP_:R9UK%%8\"EEcyH#{o';
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
// if you insist on "root" having no password:
// $cfg['Servers'][$i]['AllowNoPassword'] = true; `
?>
Ou, se você prefere não receber toda vez uma solicitação de acesso:
<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'cbb74bc'; // use here your password
$cfg['Servers'][$i]['auth_type'] = 'config';
?>
Aviso: Armazenar senhas na configuração é inseguro, pois qualquer um pode então manipular o seu banco de
dados.
Para uma explicação completa sobre todos os valores de configuração possíveis, consulte a seção Configuração neste
documento.
3.6.2 Usando o script de instalação
Em vez de editar manualmente o config.inc.php, você pode usar o recurso de configuração do phpMyAdmin. O
arquivo pode ser gerado usando a configuração e você pode baixá-lo para subir para o servidor.
Em seguida, abra o seu navegador e visite o local onde você instalou o phpMyAdmin, com o sufixo /setup. As
mudanças não são salvas no servidor, você precisa usar o botão Download para salvá-las no seu computador e depois
carregar no servidor.
Agora, o arquivo está pronto para o uso. Você pode escolher revisar ou editar o arquivo com seu editor favorito, caso
você prefira definir algumas opções avançadas que o script de instalação não fornece.
1. Se você estiver usando a “configuração” auth_type, recomendamos que você proteja o diretório de instalação
do phpMyAdmin, pois esta configuração não exige que o usuário digite uma senhapara acessar a instalação do
phpMyAdmin. É recomendado utilizar um método de autenticação alternativo, por exemplo com HTTP-AUTH
em um arquivo .htaccess ou mudar a auth_type para cookie ou http. Veja a ISPs, instalações multi-usuário
para informações adicionais, especialmente a 4.4 O phpMyAdmin sempre dá um “Acesso negado” quando uso
a autenticação por HTTP..
2. Abra o diretório principal do phpMyAdmin no seu navegador. O phpMyAdmin deve exibir agora uma tela de
boas-vindas e seus bancos de dados, ou um diálogo de autenticação, caso esteja usando método de autenticação
por HTTP ou por cookie.
3.6. Instalação Rápida 15
phpMyAdmin Documentation, Release 4.8.0-dev
Script de instalação no Debian, Ubuntu e derivativos
O Debian e o Ubuntu mudaram a forma como a configuração é ativada e desativada, de forma que um único comando
deve ser executado para qualquer um desses.
Para permitir a edição da configuração, invoque:
/usr/sbin/pma-configure
Para bloquear a edição da configuração, invoque:
/usr/sbin/pma-secure
Script de instalação no openSUSE
Algumas versões do openSUSE não incluem o script de instalação no pacote. Caso queira gerar uma configuração ne-
las, você pode tanto baixar o pacote original de <https://www.phpmyadmin.net/> quanto usar o script de configuração
em nosso servidor de demonstração: <https://demo.phpmyadmin.net/STABLE/setup/>.
3.7 Verificando releases do phpMyAdmin
Desde julho de 2015, todos os releases do phpMyAdmin são assinados criptograficamente pelo desenvolvedor, que até
janeiro de 2016 foi Marc Delisle. O ID da sua chave é 0xFEFC65D181AF644A, sua impressão digital PGP é:
436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A
e você pode obter mais informações de identificação em <https://keybase.io/lem9>.
A partir de janeiro de 2016, o gestor de releases é Isaac Bennetch. O ID da chave é 0xCE752F178259BD92, e sua
impressão digital PGP é:
3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
e você pode obter mais informações de identificação em <https://keybase.io/ibennetch>.
Alguns downloads adicionais (por exemplo, temas) podem ser assinados por Michael Čihař. O ID da sua chave é
0x9C27B31342B7511D, e sua impressão digital PGP é:
63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D
e você pode obter mais informações de identificação em <https://keybase.io/nijel>.
Você deve verificar se a assinatura corresponde ao arquivo que baixou. Desta forma, você pode ter certeza de que está
usando o mesmo código que foi publicado. Você também deve verificar a data da assinatura para se certificar de que
baixou a versão mais recente.
Cada arquivo é acompanhado por um arquivo de extensão .asc que contém a assinatura PGP do arquivo. Uma vez
que ambos os arquivos estejam no mesmo diretório, você será capaz de validar assinatura:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Can't check signature: public key not found
Como você pode ver, o gpg adverte sobre o fato de desconhecer a chave pública. Neste ponto você deve seguir um dos
seguintes passos:
16 Capítulo 3. Instalação
https://www.phpmyadmin.net/
https://demo.phpmyadmin.net/STABLE/setup/
https://keybase.io/lem9
https://keybase.io/ibennetch
https://keybase.io/nijel
phpMyAdmin Documentation, Release 4.8.0-dev
• Baixar o chaveiro do nosso servidor de download e depois importa-lo:
$ gpg --import phpmyadmin.keyring
• Baixar e importa a chave de um dos servidores:
$ gpg --keyserver hkp://pgp.mit.edu --recv-keys
→˓3D06A59ECE730EB71B511C17CE752F178259BD92
gpg: requesting key 8259BD92 from hkp server pgp.mit.edu
gpg: key 8259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Isso vai melhorar um pouco a situação - neste ponto você pode verificar que a assinatura da chave fornecida é válida
mas ainda não pode confiar no nome usado na chave:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>"
gpg: aka "Isaac Bennetch <isaac@bennetch.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
O problema é que qualquer um pode criar uma chave com este nome. Você precisa garantir que a chave é de fato
da pessoa em questão. O GNU Privacy Handbook cobre este tópico no capitulo Validating other keys on your public
keyring. O método mais confiável é encontrar o desenvolvedor pessoalmente e trocar as chaves, contudo você pode
também se basear numa rede de confiança. Desta forma você pode confiar numa chave indiretamente através da
assinatura digital de outros, que encontraram o desenvolvedor pessoalmente. Por exemplo, veja como a chave de Isaac
está conectada à chave de Linus.
Uma vez que a chave seja considerada confiável, os avisos não serão mais exibidos:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>" [full]
Se a assinatura for inválida (o arquivo foi alterado), você receberá um erro claro independente do fato de chave estar
marcada como confiável ou não:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: BAD signature from "Isaac Bennetch <bennetch@gmail.com>" [unknown]
3.8 Armazenamento de configurações do phpMyAdmin
Alterado na versão 3.4.0: Antes do phpMyAdmin 3.4.0, isso se chamava Infraestrutura de Tabelas Vinculadas, mas o
nome foi alterado devido ao escopo estendido do armazenamento.
Para um conjunto completo de recursos adicionais (Favoritos, comentários, histórico de SQL, mecanismo de monito-
ramento, geração de PDF, Transformações, Relações etc.) você precisa criar um conjunto de tabelas especiais. Essas
tabelas podem ser localizadas em seu próprio banco de dados, ou em um banco de dados central para uma instalação
multiusuário (esse banco de dados seria acessado pelo usuário de controle, portanto nenhum outro usuário deveria ter
direitos sobre ele).
3.8. Armazenamento de configurações do phpMyAdmin 17
https://files.phpmyadmin.net/phpmyadmin.keyring
https://www.gnupg.org/gph/en/manual.html#AEN335
https://www.gnupg.org/gph/en/manual.html#AEN335
https://pgp.cs.uu.nl/paths/79be3e4300411886/to/ce752f178259bd92.html
https://pgp.cs.uu.nl/paths/79be3e4300411886/to/ce752f178259bd92.html
phpMyAdmin Documentation, Release 4.8.0-dev
3.8.1 Configuração Zero
Em muitos casos, esta estrutura de banco de dados pode ser automaticamente criada e configurada. Isso é chamado
de modo “Configuração Zero” e pode ser particularmente útil em situações de hospedagem compartilhada. O modo
“Zeroconf” está no padrão, para desabilitar a configuração $cfg['ZeroConf'] para falso.
Os três cenários a seguir estão cobertos pelo modo de Configuração Zero:
• Quando entrar no banco de dados onde as tabelas de armazenamento de configuração não estão presentes, o
phpMyAdmin fornece a criação delas pela tab Operações.
• Quando entrar num banco de dados onde as tabelas já existem, o programa automaticamente detecta isso e
começa a usá-las. Esta é a situação mais comum: depois que as tabelas são inicialmente criadas automaticamente
elas são continuamente usadas sem perturbar o usuário: isso é muito útil também em hospedagem compartilhada
onde o usuário não está habilitado para editar config.inc.php e usualmente o usuário tem acesso somente
para um banco de dados.
• Quando tiver acesso a múltiplos bancos de dados, se o usuário primeiro entra num banco de dados contendo as
tabelas de armazenamento de configuração então muda para outro banco de dados, o phpMyAdmin continua a
usar as tabelas do primeiro banco de dados;o usuário não é sugerido a criar mais tabelas em um novo banco de
dados.
3.8.2 Manual de configuração
Por favor, olhe em seu diretório ./sql/, onde você encontraria um arquivo chamado create_tables.sql. (Se você está
usando um servidor Windows, preste especial atenção a 1.23 Eu estou rodando o MySQL em uma máquina Win32.
Cada vez que eu crio uma nova tabela, a tabela e os nomes das colunas são mudados para letras minúsculas!).
Se você já tinha esta infraestrutura e:
• atualizou para o MySQL 4.1.2 ou mais recente, favor utilize o arquivo sql/
upgrade_tables_mysql_4_1_2+.sql.
• atualizou para o phpMyAdmin 4.3.0 ou mais recente a partir do 2.5.0 ou mais recente (<= 4.2.x), favor utilize o
arquivo sql/upgrade_column_info_4_3_0+.sql.
• atualizou para o phpMyAdmin 4.7.0 ou mais recente a partir do 4.3.0 ou mais recente, por favor utilize o arquivo
sql/upgrade_tables_4_7_0+.sql.
e então crie novas tabelas importando o arquivo sql/create_tables.sql.
Você pode usar seu phpMyAdmin para criar as tabelas para você. Lembre-se que você pode precisar de privilégios
especiais (administrador) para criar o banco de dados e as tabelas, e que o script pode precisar de alguns ajustes,
dependendo do nome do banco de dados.
Depois de importar o arquivo sql/create_tables.sql, você deverá especificar os nomes de tabela em seu
arquivo config.inc.php. As diretivas utilizadas para isso podem ser encontradas na seção Configuração.
Você deverá também ter um usuário de controle (configurado em $cfg['Servers'][$i]['controluser']
e/ou $cfg['Servers'][$i]['controlpass']) com os direitos adequados para estas tabelas. Por exemplo,
você pode criá-la usando a instrução a seguir:
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost' IDENTIFIED
→˓BY 'pmapass';
18 Capítulo 3. Instalação
phpMyAdmin Documentation, Release 4.8.0-dev
3.9 Atualizando uma versão antiga
Aviso: Nunca extraia a nova versão sobre uma instalação existente do phpMyAdmin, sempre remova primeiro os
arquivos antigos mantendo apenas a configuração.
Desta forma, você não deixará código antigo que não funciona mais no diretório, o que poderia ter graves implica-
ções de segurança ou causar várias quebras.
Basta copiar o arquivo config.inc.php de sua instalação anterior para a instalação recém descompac-
tada. Os arquivos de configuração de versões antigas podem requerer alguns ajustes, já que algumas op-
ções foram alteradas ou removidas. Para a compatibilidade com o PHP 5.3 e anterior, remova a declaração
set_magic_quotes_runtime(0); que está próxima ao final de seu arquivo de configuração.
Você não deve copiar o arquivo libraries/config.default.php sobre o config.inc.php porque o ar-
quivo de configuração padrão é específico desta versão.
Um upgrade completo pode ser realizado em poucos passos:
1. Baixe a versão mais recente do phpMyAdmin de <https://www.phpmyadmin.net/downloads/>.
2. Renomeie a pasta existente do phpMyAdmin (por exemplo, para phpmyadmin-old).
3. Descompacte o phpMyAdmin recentemente baixado para o local desejado (por exemplo, phpmyadmin).
4. Copie o config.inc.php``da localização antiga (``phpmyadmin-old`) para a nova
(phpmyadmin).
5. Teste se tudo funciona corretamente.
6. Remover backup de versões passadas (phpmyadmin-old).
Se você tiver atualizado o seu servidor MySQL a partir de uma versão anterior a 4.1.2 para a versão 5.x ou mais
recente e se você usa a configuração de armazenamento do phpMyAdmin, você deve executar o script SQL encontrado
no arquivo upgrade_tables_mysql_4_1_2+.sql.
Se você atualizou o phpMyAdmin para a versão 4.3.0 ou mais recente a partir da 2.5.0 ou mais recente (<= 4.2.x)
e usa o armazenamento de configuração do phpMyAdmin, você deve executar o script SQL encontrado em sql/
upgrade_column_info_4_3_0+.sql.
Não se esqueça de limpar o cache do navegador e esvaziar a sessão antiga deslogando e logando novamente.
3.10 Usando os modos de autenticação
Os modos de autenticação por HTTP e cookies são recomendados num ambiente multi-usuário onde você deseja dar
aos usuários acesso ao seus próprios banco de dados e não quer eles mexendo com os demais. Independentemente,
saiba que o Internet Explorer parece apresentar muitos bugs quando a cookies, pelo menos até a versão 6. Mesmo em
um ambiente de usuário único, prefira usar o modo HTTP ou de cookies para que o seu usuário/senha não estejam
expostos no arquivo de configuração.
Os modos de autenticação HTTP e cookie são mais seguros: a informação de login do MySQL
não precisa estar definida no arquivo de configuração do phpMyAdmin (exceto, possivelmente, para a
$cfg['Servers'][$i]['controluser']). Embora, saiba que a senha é transferida em texto explícito, a
menos que você esteja usando o protocolo HTTPS. Em modo cookie, a senha é armazenada, encriptada com o algo-
ritmo AES blowfish, em um cookie temporário.
Então, cada um dos usuários reais& devem receber um conjunto de priviĺégios em um conjunto específico de banco
de dados. Normalmente você não deveria dar privilégios globais a um usuário comum, a menos que você entenda o
3.9. Atualizando uma versão antiga 19
https://www.phpmyadmin.net/downloads/
phpMyAdmin Documentation, Release 4.8.0-dev
impacto/riscos destes privilégios (é o mesmo que criar um super usuário). Por exemplo, para conceder ao usuário
*real_user todos os priviĺegios no banco de dados user_base:
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_
→˓password';
O que o usuário pode fazer agora é completamente controlado pelo sistema de gerenciamento de usuários do MySQL.
Com o modo de autenticação por HTTP ou cookies, você não precisa preencher os campos user/password dentro da
configuração $cfg['Servers'].
Ver também:
1.32 Eu posso usar autenticação HTTP com o IIS?, 1.35 Eu posso usar autenticação HTTP com o Apache CGI?, 4.1
Eu sou um ISP. Eu posso instalar uma cópia central do phpMyAdmin ou eu preciso instalar ela para cada cliente?,
4.2 Qual o meio preferido de tornar o phpMyAdmin seguro contra acessos maliciosos?, 4.3 Eu recebo erros quanto a
não ser capaz de incluir um arquivo em /lang ou /libraries.
3.10.1 Modo de autenticação HTTP
• Utiliza o HTTP como método básico de autenticação e permite você entrar como qualquer usuário válido do
MySQL.
• É suportado pela maioria das configurações PHP. Para suporte a IIS (ISAPI) usando CGI PHP veja 1.32 Eu
posso usar autenticação HTTP com o IIS?, para uso com Apache CGI veja 1.35 Eu posso usar autenticação
HTTP com o Apache CGI?.
• Quando o PHP está rodando sob o mod_proxy_fcgi da Apache (por exemplo, com PHP-FPM), os cabeçalhos
Authorization não são passados para a aplicação FCGI subjacente, de modo que suas credenciais não
chegarão na aplicação. Nesse caso, você pode adicionar a seguinte diretiva de configuração:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
• Veja também a 4.4 O phpMyAdmin sempre dá um “Acesso negado” quando uso a autenticação por HTTP. sobre
não usar o mecanismo .htaccess junto com o modo de autenticação ‘HTTP’.
Nota: Não há como fazer um logout correto na autenticação HTTP, a maioria dos navegadores lembrará as credenciais
até que não haja uma autenticação bem-sucedida diferente. Por causa disso, este método tem a limitação de que você
não pode fazer login com o mesmo usuário após o logout.
3.10.2 Modo de autenticação por cookies
• Nome de usuário e senha são armazenados em cookies durante a sessão e senha é eliminada quando termina.
• Com este modo, o usuário pode realmente deslogar-se do phpMyAdmin e logar novamente com o mesmo nome
de usuário (isso não é possível com o Modo de autenticação HTTP).
• Caso queira permitir aos uuários usar qualquer hostname para conectar (em vez de somente o que está no
configurado no config.inc.php), veja $cfg['AllowArbitraryServer'].
• Conforme mencionado na seção Requisitos, habilitar a extensão openssl irá acelerar o acesso consideravel-
mente, mas isto não é necessário.
20 Capítulo 3. Instalação
phpMyAdmin Documentation, Release 4.8.0-dev
3.10.3 Modo deautenticação tradicional
• Este modo é uma forma conveniente de usar as credenciais de outro aplicativo para autenticar phpMyAdmin
para implementar uma solução de signon simples.
• A outra aplicação tem que armazenar informações do login nos da-
dos da sessão (veja $cfg['Servers'][$i]['SignonSession'] e
$cfg['Servers'][$i]['SignonCookieParams']), ou você precisará implementar um script
para retornar as credenciais (veja $cfg['Servers'][$i]['SignonScript']).
• Quando as credenciais não estiverem disponíveis, o usuário SERÁ redirecionado para
$cfg['Servers'][$i]['SignonURL'], onde você lidará com o processo de login.
O exemplo básico de como salvar credenciais em uma sessão está disponível como: file:’examples/signon.php’:
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Single signon for phpMyAdmin
*
* This is just example how to use session based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*
* @package PhpMyAdmin
* @subpackage Example
*/
/* Use cookies for session */
@ini_set('session.use_cookies', 'true');
/* Change this to true if using phpMyAdmin over https */
$secure_cookie = false;
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secure_cookie, true);
/* Create signon session */
$session_name = 'SignonSession';
session_name($session_name);
// Uncomment and change the following line to match your $cfg['SessionSavePath']
//session_save_path('/foobar');
@session_start();
/* Was data posted? */
if (isset($_POST['user'])) {
/* Store there credentials */
$_SESSION['PMA_single_signon_user'] = $_POST['user'];
$_SESSION['PMA_single_signon_password'] = $_POST['password'];
$_SESSION['PMA_single_signon_host'] = $_POST['host'];
$_SESSION['PMA_single_signon_port'] = $_POST['port'];
/* Update another field of server configuration */
$_SESSION['PMA_single_signon_cfgupdate'] = array('verbose' => 'Signon test');
$id = session_id();
/* Close that session */
@session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
} else {
/* Show simple form */
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' , "\n";
3.10. Usando os modos de autenticação 21
file:'examples/signon.php
phpMyAdmin Documentation, Release 4.8.0-dev
?>
<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<meta charset="utf-8" />
<title>phpMyAdmin single signon example</title>
</head>
<body>
<?php
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">';
echo $_SESSION['PMA_single_signon_error_message'];
echo '</p>';
}
?>
<form action="signon.php" method="post">
Username: <input type="text" name="user" /><br />
Password: <input type="password" name="password" /><br />
Host: (will use the one from config.inc.php by default)
<input type="text" name="host" /><br />
Port: (will use the one from config.inc.php by default)
<input type="text" name="port" /><br />
<input type="submit" />
</form>
</body>
</html>
<?php
}
?>
Como alternativa, você também pode usar esta forma para integrar com OpenID como mostrado em
:file:’examples/openid.php’:
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Single signon for phpMyAdmin using OpenID
*
* This is just example how to use single signon with phpMyAdmin, it is
* not intended to be perfect code and look, only shows how you can
* integrate this functionality in your application.
*
* It uses OpenID pear package, see https://pear.php.net/package/OpenID
*
* User first authenticates using OpenID and based on content of $AUTH_MAP
* the login information is passed to phpMyAdmin in session data.
*
* @package PhpMyAdmin
* @subpackage Example
*/
if (false === @include_once 'OpenID/RelyingParty.php') {
exit;
}
/* Change this to true if using phpMyAdmin over https */
22 Capítulo 3. Instalação
file:'examples/openid.php
phpMyAdmin Documentation, Release 4.8.0-dev
$secure_cookie = false;
/**
* Map of authenticated users to MySQL user/password pairs.
*/
$AUTH_MAP = array(
'https://launchpad.net/~username' => array(
'user' => 'root',
'password' => '',
),
);
/**
* Simple function to show HTML page with given content.
*
* @param string $contents Content to include in page
*
* @return void
*/
function Show_page($contents)
{
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' , "\n";
?>
<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<meta charset="utf-8" />
<title>phpMyAdmin OpenID signon example</title>
</head>
<body>
<?php
if (isset($_SESSION) && isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">' , $_SESSION['PMA_single_signon_message'] , '</p>';
unset($_SESSION['PMA_single_signon_message']);
}
echo $contents;
?>
</body>
</html>
<?php
}
/**
* Display error and exit
*
* @param Exception $e Exception object
*
* @return void
*/
function Die_error($e)
{
$contents = "<div class='relyingparty_results'>\n";
$contents .= "<pre>" . htmlspecialchars($e->getMessage()) . "</pre>\n";
$contents .= "</div class='relyingparty_results'>";
Show_page($contents);
3.10. Usando os modos de autenticação 23
phpMyAdmin Documentation, Release 4.8.0-dev
exit;
}
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secure_cookie, true);
/* Create signon session */
$session_name = 'SignonSession';
session_name($session_name);
@session_start();
// Determine realm and return_to
$base = 'http';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
$base .= 's';
}
$base .= '://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'];
$realm = $base . '/';
$returnTo = $base . dirname($_SERVER['PHP_SELF']);
if ($returnTo[strlen($returnTo) - 1] != '/') {
$returnTo .= '/';
}
$returnTo .= 'openid.php';
/* Display form */
if (!count($_GET) && !count($_POST) || isset($_GET['phpMyAdmin'])) {
/* Show simple form */
$content = '<form action="openid.php" method="post">
OpenID: <input type="text" name="identifier" /><br />
<input type="submit" name="start" />
</form>
</body>
</html>';
Show_page($content);
exit;
}
/* Grab identifier */
if (isset($_POST['identifier']) && is_string($_POST['identifier'])) {
$identifier = $_POST['identifier'];
} elseif (isset($_SESSION['identifier']) && is_string($_SESSION['identifier'])) {
$identifier = $_SESSION['identifier'];
} else {
$identifier = null;
}
/* Create OpenID object */
try {
$o = new OpenID_RelyingParty($returnTo, $realm, $identifier);
} catch (Exception $e) {
Die_error($e);
}
/* Redirect to OpenID provider */
if (isset($_POST['start'])) {
try {
$authRequest = $o->prepare();
24 Capítulo 3. Instalação
phpMyAdmin Documentation, Release 4.8.0-dev
} catch (Exception $e) {
Die_error($e);
}
$url = $authRequest->getAuthorizeURL();
header("Location: $url");
exit;
} else {
/* Grab query string */
if (!count($_POST)) {
list(, $queryString) = explode('?', $_SERVER['REQUEST_URI']);
} else {
// I hate php sometimes
$queryString = file_get_contents('php://input');
}
/* Check reply */
try {
$message = new OpenID_Message($queryString, OpenID_Message::FORMAT_HTTP);
} catch (Exception $e) {
Die_error($e);
}
$id = $message->get('openid.claimed_id');
if (!empty($id) && isset($AUTH_MAP[$id])) {
$_SESSION['PMA_single_signon_user'] = $AUTH_MAP[$id]['user'];
$_SESSION['PMA_single_signon_password'] = $AUTH_MAP[$id]['password'];
session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
} else {
Show_page('<p>User not allowed!</p>');
exit;
}
}
Se você pretende passar as credenciais usando algum outro método, deve implementarum envoltório em PHP para
pegar os dados e inserí-los em $cfg['Servers'][$i]['SignonScript']. Há um exemplo bem básico em
examples/signon-script.php:
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Single signon for phpMyAdmin
*
* This is just example how to use script based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*
* @package PhpMyAdmin
* @subpackage Example
*/
/**
* This function returns username and password.
3.10. Usando os modos de autenticação 25
phpMyAdmin Documentation, Release 4.8.0-dev
*
* It can optionally use configured username as parameter.
*
* @param string $user User name
*
* @return array
*/
function get_login_credentials($user)
{
/* Optionally we can use passed username */
if (!empty($user)) {
return array($user, 'password');
}
/* Here we would retrieve the credentials */
$credentials = array('root', '');
return $credentials;
}
Ver também:
$cfg['Servers'][$i]['auth_type'], $cfg['Servers'][$i]['SignonSession'],
$cfg['Servers'][$i]['SignonCookieParams'], $cfg['Servers'][$i]['SignonScript'],
$cfg['Servers'][$i]['SignonURL'], Exemplo de autenticação de login
3.10.4 Modo de autenticação por configuração
• Este modo é às vezes o menos seguro porque obriga você a preencher os campos
$cfg['Servers'][$i]['user'] e $cfg['Servers'][$i]['password'] (e como resul-
tado, qualquer um pode ler o seu arquivo config.inc.php e pode descobrir seu nome de usuário e
senha).
• Na seção ISPs, instalações multi-usuário, existe um trecho explicando como proteger o seu arquivo de configu-
ração.
• Para segurança adicional neste modo, você poderia considerar a autenticação pelas direti-
vas de configuração via Host $cfg['Servers'][$i]['AllowDeny']['order'] e
$cfg['Servers'][$i]['AllowDeny']['rules'].
• Diferentemente de cookies e HTTP, esta opção não requer um usuário autenticado quando estiver carregando
o site phpMyAdmin pela primeira vez. Isto é proposital mas pode permitir qualquer usuário ter acesso a sua
instalação. O uso de algum método restritivo é recomendado, talvez um arquivo .htaccess com uma diretiva
HTTP-AUTH ou então bloquear as requisições HTTP de entrada no mínimo em um dos seus roteadores ou
firewall seria suficiente (qualquer um dos dois métodos está além do escopo deste manual mas são facilmente
encontrados no Google).
3.11 Protegendo sua instalação do phpMyAdmin
O time phpMyAdmin trabalha bastante para tornar essa aplicação segura, embora sempre exista meios de tornar sua
instalação mais segura:
• Siga os nossos Anúncios de segurança e atualize o phpMyAdmin sempre que uma nova vulnerabilidade for
publicada.
26 Capítulo 3. Instalação
https://www.phpmyadmin.net/security/
phpMyAdmin Documentation, Release 4.8.0-dev
• Sirva o phpMyAdmin apenas com HTTPS. De preferência, você também deve usar HSTS, para que esteja
protegido contra ataques de downgrade de protocolo.
• Certifique-se de que sua configuração do PHP segue as recomendações para sites de produção, por exemplo
display_errors deve estar desabilitado.
• Remova o diretório test do phpMyAdmin, a menos que você esteja desenvolvendo e precise de uma suíte de
testes.
• Remova o diretório “setup” do phpMyAdmin, você provavelmente não irá usá-lo após a instalação inicial.
• Escolher corretamento um método de autenticação - Modo de autenticação por cookies provavelmente é a
melhor escolha para hospedagem compartilhada.
• Negue o acesso a arquivos auxiliares nas subpastas ./libraries/ e ./templates/ na configuração do
seu servidor web. Tal configuração evita potenciais exposições de caminho e vulnerabilidades com cross side
scripting que possam ser encontradas nesse código. Para o servidor web Apache, isso geralmente é realizado
com um arquivo .htaccess nesses diretórios.
• Negue o acesso a arquivos temporários, veja $cfg['TempDir'] (se ele estiver dentro da sua raiz web, veja
também Diretórios de importar/salvar/subir do servidor web).
• Geralmente é uma boa ideia proteger a instalação pública do phpMyAdmin contra acesso por robôs já que eles
normalmente não fazem nada de bom lá. Você pode fazer isso usando o arquivo robots.txt na raiz do seu
servidor web ou limitar o acesso pela configuração do servidor web, veja a 1.42 Como eu posso evitar que robôs
acessem o phpMyAdmin?.
• Em caso de você não querer que todos os seus usuários MySQL tenham acesso ao phpMyAd-
min, você pode usar $cfg['Servers'][$i]['AllowDeny']['rules'] para limitá-los ou
$cfg['Servers'][$i]['AllowRoot'] para negar o acesso ao usuário root.
• Ative o Autenticação de dois fatores para sua conta.
• Considere ocultar o phpMyAdmin por trás de um proxy de autenticação, para que os usuários precisem se
autenticar antes de fornecerem credenciais do MySQL para o phpMyAdmin. Você pode fazer isso configurando
o seu servidor web para solicitar autenticação HTTP. Por exemplo, no Apache isso pode ser feito com:
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /usr/share/phpmyadmin/passwd
Require valid-user
Depois de ter alterado a configuração, você precisará criar uma lista de usuários que podem se autenticar. Isso
pode ser feito usando o utilitário htpasswd:
htpasswd -c /usr/share/phpmyadmin/passwd username
• Se você tem medo de ataques automatizados, ativar o Captcha através das opções
$cfg['CaptchaLoginPublicKey'] e $cfg['CaptchaLoginPrivateKey'] podem ser uma
opção.
• Tentativas falhas de login são registradas no syslog (se disponível, veja $cfg['AuthLog']). Isso pode
permitir o uso de uma ferramenta como o fail2ban para bloquear tentativas de força bruta. Observe que o
arquivo de log usado pelo syslog não é o mesmo que os arquivos de erro ou de log de acesso do Apache.
• Caso você esteja executando o phpMyAdmin juntamente com outras aplicações PHP, geralmente é recomendado
usar um armazenamento de sessões separado para o phpMyAdmin, para evitar possíveis ataques baseados em
sessão contra ele. Você pode usar o $cfg['SessionSavePath'] para isso.
3.11. Protegendo sua instalação do phpMyAdmin 27
https://secure.php.net/manual/en/errorfunc.configuration.php#ini.display-errors
phpMyAdmin Documentation, Release 4.8.0-dev
3.12 Usando SSL para conexão ao servidor de banco de dados
Recomenda-se usar o SSL ao se conectar a um servidor de banco de dados remoto. Existem várias opções de configu-
ração envolvidas na configuração do SSL:
$cfg['Servers'][$i]['ssl'] Define se o SSL deve ser usado. Se você habilitar apenas isso, a conexão será
criptografada, mas não há autenticação da conexão - você não pode verificar se está falando com o servidor
correto.
$cfg['Servers'][$i]['ssl_key'] e $cfg['Servers'][$i]['ssl_cert'] Isso é usado para au-
tenticação do cliente com o servidor.
$cfg['Servers'][$i]['ssl_ca'] e $cfg['Servers'][$i]['ssl_ca_path'] As autoridades de
certificação em que você confia para certificados de servidor. Isso é usado para garantir que você está con-
versando com um servidor confiável.
$cfg['Servers'][$i]['ssl_verify'] Esta configuração desabilita a verificação do certificado do servi-
dor. Use com cuidado.
Ver também:
Google Cloud SQL com SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_key'],
$cfg['Servers'][$i]['ssl_cert'], $cfg['Servers'][$i]['ssl_ca'],
$cfg['Servers'][$i]['ssl_ca_path'], $cfg['Servers'][$i]['ssl_ciphers'],
$cfg['Servers'][$i]['ssl_verify']
3.13 Problemas conhecidos
3.13.1 Os usuários com privilégios específicos de colunas não conseguem “Nave-
gar”
Se um usuário tiver apenas privilégios específicos de coluna em algumas colunas (mas não em todas) de uma tabela,
“Navegar” falhará com uma mensagem de erro.
Como uma solução alternativa, uma consulta favorita com o mesmo nome da tabela pode ser criada, ela será executada
ao usar o link “Navegar” em vez do padrão. Issue 11922.
3.13.2 Problemas ao fazer o login novamente depois de fazer o logout usando a
autenticação ‘http’
Ao usar o auth_type ‘http’, pode ser impossível logar de volta (quando o logout ocorremanualmente ou após um
período de inatividade). Issue 11898.
28 Capítulo 3. Instalação
https://github.com/phpmyadmin/phpmyadmin/issues/11922
https://github.com/phpmyadmin/phpmyadmin/issues/11898
CAPÍTULO 4
Configuração
Todos os dados configuráveis estão localizados no config.inc.php no diretório raiz do phpMyAdmin. Se esse
arquivo não existir, consulte a seção Instalação para criá-lo. Esse arquivo precisa conter apenas os parâmetros que
deseja alterar dos seus respectivos valores padrão em libraries/config.default.php (este arquivo não deve
ser alterado).
Ver também:
Exemplos para exemplos de configurações
Se um parâmetro estiver faltando de seu arquivo, você pode simplesmente adicionar outra linha ao arquivo. Esse
arquivo é para sobrescrever os padrões; se você quiser usar o valor padrão não será necessário adicionar uma linha
aqui.
Os parâmetros que são relativos ao design (como cores) estão localizados em themes/themename/layout.
inc.php. Você pode também querer criar os arquivos config.footer.inc.php e config.header.inc.
php para adicionar um código específico no início e final de cada página do seu site.
Nota: Algumas distribuições (ex: Debian ou Ubuntu) armazenam o arquivo config.inc.php em /etc/
phpmyadmin em vez de na pasta sources do phpMyAdmin.
Aviso: Os usuários Mac devem saber que caso você esteja usando uma versão anterior ao Mac OS X, o PHP não
funcionará muito bem com o caractere de final de linha (\r) do Mac. Então certifique-se de selecionar a opção
que permite usar o caractere de final de linha *nix (\n) no seu editor de texto antes de salvar um script que você
tenha modificado.
4.1 Configurações básicas
$cfg['PmaAbsoluteUri']
Type string
29
phpMyAdmin Documentation, Release 4.8.0-dev
Default value ''
Alterado na versão 4.6.5: Esta configuração não estava disponível no phpMyAdmin 4.6.0 - 4.6.4.
Define aqui a URL (com o caminho completo) para o diretório de instalação do seu phpMyAdmin. Ex:
https://www.example.net/caminho_para_o_seu_diretório_phpMyAdmin/. Observe tam-
bém que a URL diferencia maiúsculas e minúsculas na maioria dos servidores web (até mesmo no Windows).
Não esqueça a barra de escape no final.
A partir da versão 2.3.0, recomenda-se deixar isto em branco. Na maior parte dos casos o phpMyAdmin auto-
maticamente detecta a configuração mais apropriada. Aqueles que utilizam redirecionamento de portas ou uma
configuração complexa de proxy reverso podem precisar definir isso.
Um bom teste é navegar numa tabela, editar um registro e salvá-lo. Deveria aparecer uma mensagem de erro
se o phpMyAdmin estiver tendo problemas em auto-detectar o valor correto. Se você encontrar um erro que
isto deva ser configurado ou se o código de auto-detectação falhar em detectar o caminho, por favor envie um
relatório de bug para o nosso rastreador de bugs para podermos melhorar o código.
Ver também:
1.40 Quando acesso o phpMyAdmin via um proxy reverso do Apache, o login por cookies não funciona., 2.5
Cada vez que eu tento inserir ou mudar um registro ou eliminar um banco de dados ou tabela, um erro 404
(página não encontrada) é mostrado ou, com a autenticação por cookie ou HTTP, é pedido para que eu entre
novamente. Qual o problema?, 4.7 A janela de autenticação é mostrada mais de uma vez, porque?, 5.16 Com
o Internet Explorer, eu recebo erros de JavaScript “Acesso negado”. Ou eu não consigo fazer o phpMyAdmin
funcionar dentro do Windows.
$cfg['PmaNoRelation_DisableWarning']
Type boolean
Default value false
A partir da versão 2.3.0 o phpMyAdmin oferece muitos recursos para trabalhar com tabelas mestre/estrangeiras
(veja a configuração $cfg['Servers'][$i]['pmadb']).
Se você tentou definir uma configuração e ela não funcionar para você, dê uma olhada na página Structure de um
banco de dados onde você gostaria de usá-la. Você vai encontrar um link que analisa porque essas configurações
foram desativadas.
Se você não quiser usar essas funções configure esta variável para true para que a mensagem pare de aparecer.
$cfg['AuthLog']
Type string
Default value 'auto'
Novo na versão 4.8.0: Isso é suportado desde o phpMyAdmin 4.8.0.
Configure o destino do log de autenticação. As tentativas de autenticação com falha (ou todas, dependendo do
$cfg['AuthLogSuccess']) serão registradas de acordo com esta diretiva:
auto Deixe o phpMyAdmin escolher automaticamente entre syslog e php.
syslog Registra usando syslog, usando o recurso AUTH, na maioria dos sistemas isso vai parar em /var/
log/auth.log.
php Registra no log de erro do PHP.
sapi Registra no log da SAPI do PHP.
/caminho/para/o/arquivo Qualquer outro valor é tratado como um nome de arquivo e as entradas de
log serão escritas lá.
30 Capítulo 4. Configuração
phpMyAdmin Documentation, Release 4.8.0-dev
Nota: Ao definir um arquivo de log, verifique se as permissões estão corretamente configuradas para um
usuário do servidor web, a instalação deve corresponder às instruções descritas em $cfg['TempDir']:
$cfg['AuthLogSuccess']
Type boolean
Default value false
Novo na versão 4.8.0: Isso é suportado desde o phpMyAdmin 4.8.0.
Se deseja registrar tentativas de autenticação bem sucedidas no $cfg['AuthLog'].
$cfg['SuhosinDisableWarning']
Type boolean
Default value false
Um alerta é exibido na página principal se o pacote Suhosin for detectado.
Você pode configurar esse parâmetro para true para que esta mensagem pare de aparecer.
$cfg['LoginCookieValidityDisableWarning']
Type boolean
Default value false
Um alerta é disparado na página principal se o parâmetro session.gc_maxlifetime do PHP estiver mais baixo do
que o cookie de validade configurado no phpMyAdmin.
Você pode configurar esse parâmetro para true para que esta mensagem pare de aparecer.
$cfg['ServerLibraryDifference_DisableWarning']
Type boolean
Default value false
Obsoleto desde a versão 4.7.0: Esta configuração foi removida, pois o aviso foi removido também.
Um aviso é mostrado na página principal se houver uma diferença entre a biblioteca MySQL e a versão do
servidor.
Você pode configurar esse parâmetro para true para que esta mensagem pare de aparecer.
$cfg['ReservedWordDisableWarning']
Type boolean
Default value false
Esse aviso é exibido na página Estrutura de uma tabela se um ou mais nomes de campos forem iguais a palavras
reservadas do MySQL.
Se você quiser desativar esse aviso, você pode configurá-la para true e o aviso não será mais exibido.
$cfg['TranslationWarningThreshold']
Type integer
Default value 80
Mostra aviso a respeito de traduções incompletas em certa seção.
$cfg['SendErrorReports']
4.1. Configurações básicas 31
phpMyAdmin Documentation, Release 4.8.0-dev
Type string
Default value 'perguntar'
Define o comportamento padrão do relatório de erros do JavaScript.
Sempre que um erro for detectado na execução do JavaScript, um relatório de erro poderá ser enviado ao time
do phpMyAdmin se o usuário concordar.
O padrão de 'perguntar' irá perguntar ao usuário toda vez que houver um novo relatório de erro. No entanto
você pode definir esse parâmetro como 'sempre' para enviar relatórios de erro sem pedir por confirmação ou
como 'nunca' para nunca enviar relatórios de erro.
Essa diretiva está disponível tanto no arquivo de configuração quanto nas preferências de usuário. Se a pessoa a
cargo de uma instalação multi-usuário preferir desativar essa função para todos os usuários, o valor de 'nunca'
será definido, e a diretiva $cfg['UserprefsDisallow'] deverá conter 'SendErrorReports' em um
dos valores de seu vetor.
$cfg['ConsoleEnterExecutes']
Type boolean
Default value false
Configurando isso para true permite ao usuário executar consultas pressionando Enter em vez de Ctrl+Enter.
Uma nova linha pode ser inserida pressionando Shift + Enter.
O comportamento do console pode ser temporariamente modificado usando a sua interface de configurações.
$cfg['AllowThirdPartyFraming']
Type boolean
Default value false
Configurar este parâmetro para true permite o phpMyAdmin ser incluído dentro de um frame, e é um possívelburaco de segurança que permite ataque de scripts cross-frame ou de sequestro de cliques.
4.2 Configurações de conexão de servidor
$cfg['Servers']
Type vetor
Default value um conjunto de servidores com as configurações listadas abaixo
A partir da versão 1.4.2, o phpMyAdmin suporta a administração de múltiplos servidores MySQL. Então, um
array $cfg['Servers'] foi adicionado que contém as informações de login para os diferentes servido-
res. O primeiro $cfg['Servers'][$i]['host'] contém o hostname do primeiro servidor, o segundo
$cfg['Servers'][$i]['host'] contém o hostname do segundo servidor, e assim por diante. No ar-
quivo libraries/config.default.php existe somente uma seção para as definições do servidor, en-
tretanto você pode definir quantos você precisar no config.inc.php, apenas copie este bloco ou as partes
necessárias (você não tem que definir todas as opções, apenas aquelas que precisam ser alteradas).
Nota: O array $cfg['Servers'] começa com $cfg[‘Servers’][1]. Não use o $cfg[‘Servers’][0]. Se você
quer mais de um servidor, apenas copie a seção seguinte (incluindo a incrementação do $i). Não é necessário
definir o array do servidor completamente, apenas defina os valores que você precisa mudar.
$cfg['Servers'][$i]['host']
32 Capítulo 4. Configuração
phpMyAdmin Documentation, Release 4.8.0-dev
Type string
Default value 'localhost'
O hostname ou o endereço IP do seu enésimo servidor MySQL. Ex: localhost.
Os valores disponíveis são:
• hostname, ex: 'localhost' ou 'mydb.example.org'
• endereço IP, ex: '127.0.0.1' ou '192.168.10.1'
• Endereço IPv6, por exemplo: 2001:cdba:0000:0000:0000:0000:3257:9652
• ponto - '.', ou seja, use fluxos nomeados em sistemas Windows
• vazio - '', desativa este servidor
Nota: O nome de host localhost é tratado de forma especial pelo MySQL e ele usa o protocolo
de conexão baseado em soquete. Para usar a rede TCP/IP, use um endereço IP ou um nome de host,
tais como 127.0.0.1 ou db.example.com. Você pode configurar o caminho para o soquete com
$cfg['Servers'][$i]['socket'].
Ver também:
$cfg['Servers'][$i]['port'], <https://dev.mysql.com/doc/refman/5.7/en/connecting.html>
$cfg['Servers'][$i]['port']
Type string
Default value ''
O número da porta do seu enésimo servidor MySQL. O padrão é 3306 (deixe em branco).
Nota: Se você usa localhost como o hostname, o MySQL ignora este número de porta e conecta via
socket, então caso queira conectar com uma porta diferente da porta padrão, use 127.0.0.1 ou um hostname
verdadeiro em $cfg['Servers'][$i]['host'].
Ver também:
$cfg['Servers'][$i]['host'], <https://dev.mysql.com/doc/refman/5.7/en/connecting.html>
$cfg['Servers'][$i]['socket']
Type string
Default value ''
O caminho para o socket a ser usado. Deixe em branco para usar o padrão. Para determinar o socket correto,
verifique a sua configuração MySQL ou, use o cliente mysql de linha de comando, passando o comando
status. Dentre os resultados obtidos estará também o socket em uso.
Nota: Isso só produz efeito se $cfg['Servers'][$i]['host'] estiver configurado para localhost.
Ver também:
$cfg['Servers'][$i]['host'], <https://dev.mysql.com/doc/refman/5.7/en/connecting.html>
$cfg['Servers'][$i]['ssl']
4.2. Configurações de conexão de servidor 33
https://dev.mysql.com/doc/refman/5.7/en/connecting.html
https://dev.mysql.com/doc/refman/5.7/en/connecting.html
https://dev.mysql.com/doc/refman/5.7/en/connecting.html
phpMyAdmin Documentation, Release 4.8.0-dev
Type boolean
Default value false
Se deve habilitar SSL para a conexão entre o phpMyAdmin e o servidor MySQL para proteger a conexão.
Quando usada a extensão 'mysql', nenhuma das opções de configuração 'ssl...' restantes se aplicam.
Nós recomendamos fortemente usar a extensão 'mysqli' quando usar esta opção.
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl_key'], $cfg['Servers'][$i]['ssl_cert'],
$cfg['Servers'][$i]['ssl_ca'], $cfg['Servers'][$i]['ssl_ca_path'],
$cfg['Servers'][$i]['ssl_ciphers'], $cfg['Servers'][$i]['ssl_verify']
$cfg['Servers'][$i]['ssl_key']
Type string
Default value null
Caminho para o arquivo de chave do cliente ao usar SSL para se conectar ao servidor MySQL. Isso é usado para
autenticar o cliente no servidor.
Por exemplo:
$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_cert'],
$cfg['Servers'][$i]['ssl_ca'], $cfg['Servers'][$i]['ssl_ca_path'],
$cfg['Servers'][$i]['ssl_ciphers'], $cfg['Servers'][$i]['ssl_verify']
$cfg['Servers'][$i]['ssl_cert']
Type string
Default value null
Caminho para o arquivo de certificado do cliente ao usar SSL para se conectar ao servidor MySQL. Isso é usado
para autenticar o cliente no servidor.
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_key'],
$cfg['Servers'][$i]['ssl_ca'], $cfg['Servers'][$i]['ssl_ca_path'],
$cfg['Servers'][$i]['ssl_ciphers'], $cfg['Servers'][$i]['ssl_verify']
$cfg['Servers'][$i]['ssl_ca']
Type string
Default value null
Caminho para o arquivo CA quando usar SSL para conectar ao servidor MySQL.
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_key'],
34 Capítulo 4. Configuração
phpMyAdmin Documentation, Release 4.8.0-dev
$cfg['Servers'][$i]['ssl_cert'], $cfg['Servers'][$i]['ssl_ca_path'],
$cfg['Servers'][$i]['ssl_ciphers'], $cfg['Servers'][$i]['ssl_verify']
$cfg['Servers'][$i]['ssl_ca_path']
Type string
Default value null
Diretório contendo certificados das CAs SSL em formato PEM.
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_key'],
$cfg['Servers'][$i]['ssl_cert'], $cfg['Servers'][$i]['ssl_ca'],
$cfg['Servers'][$i]['ssl_ciphers'], $cfg['Servers'][$i]['ssl_verify']
$cfg['Servers'][$i]['ssl_ciphers']
Type string
Default value null
Lista das cifras permitíveis para conexões SSL com o servidor MySQL.
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_key'],
$cfg['Servers'][$i]['ssl_cert'], $cfg['Servers'][$i]['ssl_ca'],
$cfg['Servers'][$i]['ssl_ca_path'], $cfg['Servers'][$i]['ssl_verify']
$cfg['Servers'][$i]['ssl_verify']
Type boolean
Default value true
Novo na versão 4.6.0: Isso é suportado desde o phpMyAdmin 4.6.0.
Se a sua instalação do PHP usa o Driver Nativo do MySQL (mysqlnd), seu servidor MySQL é 5.6 ou posterior e
seu certificado SSL é auto-assinado, há uma chance de sua conexão SSL falhar devido à validação. Definir isso
como false desativará a verificação de validação.
Desde o PHP 5.6.0 ele também verifica se o nome do servidor corresponde ao CN do seu certificado. Atual-
mente, não há como desabilitar apenas esta verificação sem desativar a verificação SSL completa.
Aviso: Desativar a verificação do certificado acaba com o propósito de usar o SSL. Isso tornará a conexão
vulnerável a ataques man-in-the-middle.
Nota: Essa flag só funciona com PHP 5.6.16 ou versões mais recentes.
Ver também:
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com
SSL, $cfg['Servers'][$i]['ssl'], $cfg['Servers'][$i]['ssl_key'],
$cfg['Servers'][$i]['ssl_cert'], $cfg['Servers'][$i]['ssl_ca'],
$cfg['Servers'][$i]['ssl_ca_path'], $cfg['Servers'][$i]['ssl_ciphers'],
$cfg['Servers'][$i]['ssl_verify']
4.2. Configurações de conexão de servidor 35
phpMyAdmin Documentation, Release 4.8.0-dev
$cfg['Servers'][$i]['connect_type']
Type string
Default value 'TCP'
Obsoleto desde a versão 4.7.0: Esta configuração não é mais utilizada a partir do 4.7.0, uma vez que o MySQL
decide o tipo de conexão com base no host, logo isso poderia levar a resultados inesperados.

Continue navegando