Instalar a ferramenta de administração de banco de dados PHPMyAdmin

Desde o Debian 10, o PHPMyAdmin não está mais disponível como pacote .deb. Portanto, vamos instalá-lo a partir da fonte.

Crie pastas para o PHPMyadmin:

mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setup

Vá para o diretório / tmp e faça o download das fontes do PHPMyAdmin:

cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz

Descompacte o arquivo baixado e mova os arquivos para a pasta / usr / share / phpmyadmin e limpe o diretório / tmp.

tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languages

Crie um novo arquivo de configuração para o PHPMyaAdmin com base no arquivo de amostra fornecido:

cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php

Abra o arquivo de configuração com o nano editor:

nano /usr/share/phpmyadmin/config.inc.php

Defina uma senha segura (segredo do blowfish) que deve ter 32 caracteres:

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

Não use meu segredo de blowfish de exemplo, defina o seu!

Em seguida, adicione uma linha para definir o diretório que o PHPMyAdmin deve usar para armazenar arquivos temporários:

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

Em seguida, criamos o arquivo de configuração do Apache para PHPMyAdmin abrindo um novo arquivo no nano editor:

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

Cole a seguinte configuração no arquivo e salve-a.

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
 Options FollowSymLinks
 DirectoryIndex index.php

 <IfModule mod_php7.c>
 AddType application/x-httpd-php .php

 php_flag magic_quotes_gpc Off
 php_flag track_vars On
 php_flag register_globals Off
 php_value include_path .
 </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
 <IfModule mod_authn_file.c>
 AuthType Basic
 AuthName "phpMyAdmin Setup"
 AuthUserFile /etc/phpmyadmin/htpasswd.setup
 </IfModule>
 Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
 Order Deny,Allow
 Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
 Order Deny,Allow
 Deny from All
</Directory>

Ative a configuração e reinicie o Apache.

a2enconf phpmyadmin
systemctl restart apache2

Na próxima etapa, iremos configurar o repositório de configurações do phpMyadmin (banco de dados).

Efetue login no MariaDB como usuário root:

mysql -u root -p

No shell do MariaDB, crie um novo banco de dados para o PHPMyAdmin:

MariaDB [(none)]> CREATE DATABASE phpmyadmin;

Em seguida, crie um novo usuário:

MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';

Substitua a palavra mypassword por uma senha segura de sua escolha nos comandos acima e abaixo; use a mesma senha nas duas vezes. Em seguida, conceda ao usuário acesso a esse banco de dados e recarregue as permissões do banco de dados.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Por fim, carregue as tabelas SQL no banco de dados:

mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql

Digite a senha raiz do MariaDB, mediante solicitação.

Tudo o que precisamos fazer agora é definir os detalhes do usuário phpmyadmin no arquivo de configuração. Abra o arquivo no nano editor novamente:

nano /usr/share/phpmyadmin/config.inc.php

Role para baixo até ver as linhas abaixo e editá-las:

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

/* 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';

Marquei as linhas em vermelho que editei. Substitua mypassword pela senha que você escolheu para o usuário phpmyadmin. Observe que o // na frente das linhas também foi removido!

Rolar para cima