Logo
FAQ

Como instalar o phpMyAdmin no Cloud App

Embora muitos usuários precisem da funcionalidade de um sistema de gerenciamento de banco de dados como o MariaDB, eles podem não se sentir confortáveis ​​interagindo com o sistema apenas a partir do prompt do MariaDB.

O phpMyAdmin foi criado para que os usuários possam interagir com o MariaDB através de uma interface web. 

Vamos supor que você ja tenha instalado o mariadb no Cloud App seguindo o tutorial de instalação do mariadb na Absam para Cloud App internamente aqui

OBS: recomendamos que o uso de banco de dados deve ser feito no Cloud DataBases por motivos segurança para o cliente.

Passo 1 — Instalando o phpMyAdmin e os pacotes recomendados

Primeiro, atualize o índice de pacotes do seu servidor, caso não tenha feito isso recentemente:

sudo apt update

Em seguida, use aptpara baixar os arquivos e instalá-los em seu sistema:

Lembrando que estamos levando em conta que esta no Cloud App com php 7.4 configurado no painel da Absam para esse servidor, que você pode selecionar no menu configurações do painel. Certifique-se que esta o php 7.4 selecionado.

sudo apt install php7.4-mbstring php7.4-zip php7.4-gd

A seguir, podemos instalar o phpMyAdmin. 

Para fazer isso, navegue até a página de downloads do phpMyAdmin , role para baixo até a tabela com links para download da versão estável mais recente e copie o link de download que termina em tar.gz.

Observação: nesta página de downloads, você notará que existem links para download marcados all-languagesenglish. Os all-languageslinks irão baixar uma versão do phpMyAdmin que permitirá que você selecione um dos 72 idiomas disponíveis, enquanto os englishlinks permitirão apenas que você use o phpMyAdmin em inglês.

Substitua o link no wgetcomando a seguir pelo link de download que você acabou de copiar e pressione ENTER. Isso executará o comando e baixará o tarball para o seu servidor:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.tar.gz

Em seguida, extraia o tar:

tar xvf phpMyAdmin-4.9.7-all-languages.tar.gz

Isso criará vários novos arquivos e diretórios em seu servidor em um diretório pai chamado .phpMyAdmin-4.9.7-all-languages

Em seguida, execute o seguinte comando. Isso moverá o diretório e todos os seus subdiretórios para o diretório, o local onde o phpMyAdmin espera encontrar seus arquivos de configuração por padrão. Ele também renomeará o diretório existente para apenas :phpMyAdmin-4.9.7-all-languages /var/www/html/phpMyAdmin

sudo mv phpMyAdmin-4.9.7-all-languages/ /var/www/html/phpMyAdmin

Com isso, você instalou o phpMyAdmin, mas há uma série de alterações na configuração que você deve fazer para poder acessar o phpMyAdmin através de um navegador da web.


Passo 2 — Configurando o phpMyAdmin manualmente

Ao instalar o phpMyAdmin com um gerenciador de pacotes, como seria possível em um ambiente Ubuntu, o phpMyAdmin usa como padrão o modo “Configuração Zero” que executa várias ações automaticamente para configurar o programa. Como o instalamos a partir da fonte neste guia, precisaremos executar essas etapas manualmente.

Para começar, crie um novo diretório onde o phpMyAdmin armazenará seus arquivos temporários:

sudo mkdir -p /var/lib/phpmyadmin/tmp

Defina www-data — o perfil de usuário Linux que servidores web como o Apache usam por padrão para operações normais em sistemas Ubuntu e Debian — como o proprietário deste diretório:

sudo chown -R www-data:www-data /var/lib/phpmyadmin

Os arquivos extraídos anteriormente incluem um arquivo de configuração de amostra que pode ser usado como arquivo de configuração base. Faça uma cópia deste arquivo, mantendo-o no /var/www/html/phpMyAdmin diretório, e renomeie-o config.inc.php:

sudo cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php

Abra este arquivo usando seu editor de texto preferido. Aqui, usaremos nano:

sudo nano /var/www/html/phpMyAdmin/config.inc.php

O phpMyAdmin usa o cookiemétodo de autenticação por padrão, que permite que você faça login no phpMyAdmin como qualquer usuário válido do MariaDB com a ajuda de cookies . A senha do usuário MariaDB é armazenada e criptografada com o algoritmo Advanced Encryption Standard (AES) em um cookie temporário.

Historicamente, o phpMyAdmin usava a cifra Blowfish para essa finalidade, e isso ainda se reflete em seu arquivo de configuração. Role para baixo até a linha que começa com $cfg['blowfish_secret']. Isso parecerá assim:

. . .
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .

Entre aspas simples, insira uma sequência de 32 caracteres aleatórios. Esta não é uma senha que você precisa lembrar, ela apenas será usada internamente pelo algoritmo AES:

. . .
$cfg['blowfish_secret'] = 'STRINGOFTHIRTYTWORANDOMCHARACTERS'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .

Observação: se a senha inserida aqui tiver menos de 32 caracteres, os cookies criptografados serão menos seguros. Inserir uma string com mais de 32 caracteres, porém, não causará nenhum dano.

Para gerar uma sequência de caracteres verdadeiramente aleatória, você pode instalar e usar o pwgen programa:

sudo apt install pwgen

Por padrão, pwgencria senhas facilmente pronunciáveis, embora menos seguras. No entanto, ao incluir o -ssinalizador, como no comando a seguir, você pode criar uma senha completamente aleatória e difícil de memorizar. Observe os dois argumentos finais deste comando: 32, que determina o tamanho que a string de senha pwgenserá gerada; e 1que informa pwgenquantas strings deve gerar:

pwgen -s 32 1

Em seguida, role para baixo até a leitura do comentário /* User used to manipulate with storage */. Esta seção inclui algumas diretivas que definem um usuário do banco de dados MariaDB chamado pma que executa certas tarefas administrativas dentro do phpMyAdmin. De acordo com a documentação oficial , esta conta de usuário especial não é necessária nos casos em que apenas um usuário acessará o phpMyAdmin, mas é recomendada em cenários multiusuário.

Remova o comentário das controluser diretivas controlpasse removendo as barras anteriores. Em seguida, atualize a controlpass diretiva para apontar para uma senha segura de sua escolha. Se você não fizer isso, a senha padrão permanecerá em vigor e usuários desconhecidos poderão facilmente obter acesso ao seu banco de dados através da interface do phpMyAdmin.

Depois de fazer essas alterações, esta seção do arquivo ficará assim:

. . .
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'password';
. . .

Abaixo desta seção, você encontrará outra seção precedida por um comentário lendo /* Storage database and tables */. Esta seção inclui uma série de diretivas que definem o armazenamento de configuração do phpMyAdmin , um banco de dados e diversas tabelas usadas pelo usuário administrativo do banco de dados pma . Essas tabelas permitem vários recursos no phpMyAdmin, incluindo marcadores, comentários, geração de PDF e muito mais.

Remova o comentário de cada linha nesta seção removendo as barras no início de cada linha para que fique assim:

. . .
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
. . .

Essas tabelas ainda não existem, mas iremos criá-las em breve.

Por último, role até o final do arquivo e adicione a seguinte linha. Isso configurará o phpMyAdmin para usar o /var/lib/phpmyadmin/tmp diretório que você criou anteriormente como diretório temporário. O phpMyAdmin usará este diretório temporário como um cache de modelos que permite um carregamento mais rápido da página:

. . .
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';


Salve e feche o arquivo após adicionar esta linha. Se você usou nano, você pode fazer isso pressionando CTRL + XY, então ENTER.


Em seguida, você precisará criar o banco de dados e as tabelas de armazenamento do phpMyAdmin. Quando você instalou o phpMyAdmin na etapa anterior, ele veio com um arquivo chamado create_tables.sql. Este arquivo SQL contém todos os comandos necessários para criar o banco de dados de armazenamento de configuração e as tabelas que o phpMyAdmin precisa para funcionar corretamente.


Execute o seguinte comando para usar o create_tables.sqlarquivo para criar o banco de dados e as tabelas de armazenamento de configuração:

sudo mariadb < /var/www/html/phpMyAdmin/sql/create_tables.sql

Depois disso, você precisará criar o usuário administrativo do pma . Abra o prompt do MariaDB

sudo mariadb

No prompt, execute o comando a seguir para criar o usuário pma e conceder a ele as permissões apropriadas. Certifique-se de alterar password para alinhar com a senha definida no config.inc.phparquivo:

GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'password';

Caso ainda não tenha criado um, você também deve criar um usuário MariaDB regular para fins de gerenciamento de bancos de dados através do phpMyAdmin, pois é recomendado que você faça login usando uma conta diferente do usuário pma . Você pode criar um usuário que tenha privilégios para todas as tabelas do banco de dados, bem como o poder de adicionar, alterar e remover privilégios de usuário, com este comando. Quaisquer que sejam os privilégios atribuídos a este usuário, certifique-se de fornecer também uma senha forte:

GRANT ALL PRIVILEGES ON *.* TO 'outrouser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Depois disso, saia do shell MariaDB:

exit

O phpMyAdmin agora está totalmente instalado e configurado em seu servidor. No entanto, o seu servidor Apache ainda não sabe como servir o aplicativo. Para resolver isso, criaremos um arquivo de configuração do Apache para ele.

Passo 3 — Configurando o Apache para servir o phpMyAdmin

Ao instalar o phpMyAdmin a partir dos repositórios padrão, o processo de instalação cria um arquivo de configuração do Apache automaticamente e o coloca no /etc/apache2/conf-enabled/diretório. Como instalamos o phpMyAdmin a partir do código-fonte, precisaremos criar e ativar esse arquivo manualmente.

Crie um arquivo nomeado phpmyadmin.conf no /etc/apache2/conf-available/ diretório:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Em seguida, adicione o seguinte conteúdo ao arquivo:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /var/www/html/phpMyAdmin

<Directory /var/www/html/phpMyAdmin>

Options SymLinksIfOwnerMatch

DirectoryIndex index.php

<IfModule mod_php5.c>

<IfModule mod_mime.c>

AddType application/x-httpd-php .php

</IfModule>

<FilesMatch ".+\.php$">

SetHandler application/x-httpd-php

</FilesMatch>

php_value include_path .

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

php_admin_value open_basedir /var/www/html/phpMyAdmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/

php_admin_value mbstring.func_overload 0

</IfModule>

<IfModule mod_php.c>

<IfModule mod_mime.c>

AddType application/x-httpd-php .php

</IfModule>

<FilesMatch ".+\.php$">

SetHandler application/x-httpd-php

</FilesMatch>

php_value include_path .

php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp

php_admin_value open_basedir /var/www/html/phpMyAdmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/

php_admin_value mbstring.func_overload 0

</IfModule>

</Directory>

# Authorize for setup

<Directory /var/www/html/phpMyAdmin/setup>

<IfModule mod_authz_core.c>

<IfModule mod_authn_file.c>

AuthType Basic

AuthName "phpMyAdmin Setup"

AuthUserFile /etc/phpmyadmin/htpasswd.setup

</IfModule>

Require valid-user

</IfModule>

</Directory>

# Disallow web access to directories that don't need it

<Directory /var/www/html/phpMyAdmin/templates>

Require all denied

</Directory>

<Directory /var/www/html/phpMyAdmin/libraries>

Require all denied

</Directory>

<Directory /var/www/html/phpMyAdmin/setup/lib>

Require all denied

</Directory>

Este é o arquivo de configuração padrão do phpMyAdmin Apache encontrado nas instalações do Ubuntu, embora também seja adequado para uma configuração do Debian.

Salve e feche o arquivo e ative-o digitando:

sudo a2enconf phpmyadmin.conf

Em seguida, recarregue o apache2serviço para que as alterações de configuração tenham efeito:

sudo systemctl reload apache2

Depois disso, você poderá acessar a tela de login do phpMyAdmin navegando até o seguinte URL em seu navegador:

Você verá a seguinte tela de login:

Passo 4 — Protegendo sua instância do phpMyAdmin

Devido à sua onipresença, o phpMyAdmin é um alvo popular para invasores e você deve tomar cuidado extra para evitar acesso não autorizado. Uma das maneiras mais fáceis de fazer isso é colocar um gateway na frente de todo o aplicativo usando as .htaccess funcionalidades integradas de autenticação e autorização do Apache.

Para fazer isso, você deve primeiro habilitar o uso de .htaccess substituições de arquivo editando seu arquivo de configuração do Apache.

Edite o arquivo vinculado que foi colocado no diretório de configuração do Apache:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Adicione uma AllowOverride Alldiretiva na <Directory /usr/share/phpmyadmin>seção do arquivo de configuração, assim:

<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
<IfModule mod_php5.c>

Depois de adicionar esta linha, salve e feche o arquivo.

Para implementar as alterações feitas, reinicie o Apache:

sudo systemctl restart apache2

Agora que você habilitou .htaccesso uso do seu aplicativo, você precisa criar um para realmente implementar alguma segurança.

Para que isso seja bem sucedido, o arquivo deve ser criado dentro do diretório do aplicativo. Você pode criar o arquivo necessário e abri-lo em seu editor de texto com privilégios de root digitando:

sudo nano /var/www/html/phpMyAdmin/.htaccess

Dentro deste arquivo, insira o seguinte conteúdo:

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /var/www/html/phpMyAdmin/.htpasswd
Require valid-user

Aqui está o que cada uma dessas linhas significa:

  1. AuthType Basic: esta linha especifica o tipo de autenticação que você está implementando. Este tipo implementará a autenticação por senha usando um arquivo de senha.
  2. AuthName: Isso define a mensagem para a caixa de diálogo de autenticação. Você deve manter isso genérico para que usuários não autorizados não obtenham nenhuma informação sobre o que está sendo protegido.
  3. AuthUserFile: define o local do arquivo de senha que será usado para autenticação. Isso deve estar fora dos diretórios que estão sendo servidos. Criaremos este arquivo em breve.
  4. Require valid-user: especifica que somente usuários autenticados devem ter acesso a esse recurso. Isso é o que realmente impede a entrada de usuários não autorizados.

Quando terminar, salve e feche o arquivo.

O local que você selecionou para o seu arquivo de senha foi /var/www/html/phpMyAdmin/.htpasswd. Agora você pode criar este arquivo e passá-lo para um usuário inicial com o htpasswdutilitário:

sudo htpasswd -c /var/www/html/phpMyAdmin/.htpasswd username

Você será solicitado a selecionar e confirmar uma senha para o usuário que está criando. Posteriormente, o arquivo é criado com a senha com hash que você digitou.

Se quiser inserir um usuário adicional, você precisará fazê-lo sem o -csinalizador, assim:

sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

Agora, ao acessar seu subdiretório phpMyAdmin, você será solicitado a fornecer o nome da conta e a senha adicionais que acabou de configurar:

https://your_domain_or_IP/phpmyadmin

Depois de inserir a autenticação Apache, você será levado à página normal de autenticação do phpMyAdmin para inserir suas credenciais MariaDB. Esta configuração adiciona uma camada adicional de segurança, o que é desejável já que o phpMyAdmin sofreu vulnerabilidades no passado.