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!