Instalar phpMyadmin numa máquina com Debian

Publicado: 22/02/2022 em Linux, Programação, Serviços IP
Tags:, , ,

A instalação do phpMyadmin descrita neste post foi testada numa máquina com Debian 10 (buster).

1. Instalar pacotes recomendados
# apt update
# apt-get install php7.3-cgi php7.3-gd php7.3-zip php7.3-mbstring libapache2-mod-php7.3 php7.3-common php-pear mariadb-server php7.3-mysql

2. Baixar o phpMyadmin
Os releases do phpMyAdmin estão disponíveis para download em sua página oficial. Baixar a versão mais recente, que no momento deste post foi realizado através da seguinte maneira:
$ wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.tar.gz

3. Extrair o arquivo baixado
$ tar xvf phpMyAdmin-5.1.3-all-languages.tar.gz

4. Mover o resultado para a pasta /usr/share/phpmyadmin
O camando abaixo moverá todos os arquivos e subdiretórios para o destino:
# mv phpMyAdmin-*/ /usr/share/phpmyadmin

5. Criar a pasta para arquivos temporários do phpMyAdmin
# mkdir -p /var/lib/phpmyadmin/tmp
# chown -R www-data:www-data /var/lib/phpmyadmin

6. Criar a pasta os arquivos de configuração do phpMyAdmin
# mkdir /etc/phpmyadmin/

7. Criar o arquivo de configuração phpMyAdmin
# cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

8. Editar o arquivo de configuração /usr/share/phpmyadmin/config.inc.php

$cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i';
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
$cfg['Servers'][$i]['pmadb'] = 'bdmyadmin';

observações:

  • o valor para pmadb a ser escolhido deve corresponder ao nome da base de dados que vamos criar mais adiante neste script.
  • a sequência de 32 caracteres não é uma senha que precise ser lembrada, a qual será apenas utilizada internamente pelo algoritmo AES.
  • caso a sequência inserida contiver menos de 32 caracteres, ocasionará cookies criptografados menos seguros. Mais de 32 caracteres não causará nenhum dano.

9. Configurar Apache web Server
Criar o seguinte arquivo em /etc/apache2/conf-available/phpmyadmin.conf


Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/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 /usr/share/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 /usr/share/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 /usr/share/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 /usr/share/phpmyadmin/templates>
   Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
   Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
   Require all denied
</Directory>

 

Deve ter sido criado o seguinte link simbólico em /etc/apache2/conf-enabled:
phpmyadmin.conf -> ../conf-available/phpmyadmin.conf

Em seguida, usar os seguintes comandos:
# a2enconf phpmyadmin.conf
# systemctl reload apache2

10. Visitar a interface web phpMyAdmin
Com o navegador, acessar a interface web do phpMyAdmin em http://localhost/phpmyadmin
A seguinte página deve ser obtida:

Página inicial do phpmyadmin

11. Criar usuário no banco de dados MySQL

# mysql -u root
MariaDB [(none)]> SELECT user,password FROM mysql.user;
MariaDB [(none)]> CREATE USER usuario_myadmin@localhost IDENTIFIED BY 'senha_usuario';
MariaDB [(none)]> CREATE DATABASE bdmyadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_swedish_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES on bdmyadmin.* to 'usuario_myadmin'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;

Observações:

  • o nome da base (aqui escolhido como bdmyadmin) e o nome do usuário (aqui escolhido como usuario_myadmin) são meros exemplos. Mas deve corresponder ao que fora definido antes na configuração do arquivo /usr/share/phpmyadmin/config.inc.php.
  • Ao fazer a autenticação no aplicativo, o acesso a base de dados bdmyadmin já estará disponível. Se o usuário tiver acesso a outras bases de dados, estas também estarão disponíveis simultaneamente.
  • Para fazer a autenticação no aplicativo, utilize as credenciais escolhidas:
    • usuario: usuario_myadmin
    • senha: senha_usuario

Neste caso, a página inicial após fazer autenticação estará da seguinte forma (cujas bases de dados de trabalho estarão sendo mostradas à esquerda):
Página do phpMyadmin após login

Referências:
1- How To Install phpMyAdmin on Debian 11/Debian 10
2- Como instalar o phpMyAdmin no Debian 10

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho