Baixe o app para aproveitar ainda mais
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.
Compartilhar