PhpMyAdmin на Debian 10

Вот и вышла стабильная версия Linux Debian 10 Buster (10.0.0).

Попробовал поднять стандартный LAMP:

  • Apache/2.4.38 (Debian)
  • PHP Version 7.3.4
  • MariaDB 10.3

Однако пакета phpMyAdmin не оказалось в кандидатах на установку, пришлось собирать вручную. Надеюсь скоро появится в репозиториях Debian.

Установка phpMyAdmin на Debian 10 (или сборка phpMyAdmin вручную)

1. Переходим на сайт проекта phpMyAdmin — https://www.phpmyadmin.net/downloads/ и копируем ссылку на актуальную версию.

2. Скачиваем и разархивируем:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz
tar xvf phpMyAdmin-4.9.0.1-all-languages.tar.gz
rm phpMyAdmin*.gz

3. Переносим папку phpmyadmin в /usr/share/phpmyadmin:

mv phpMyAdmin-* /usr/share/phpmyadmin

4. Создаем папку для временных файлов phpMyAdmin и задаем соответствующие права:

mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin

5. Создаем конфигурационный файл phpMyAdmin и редактируем:

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

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

# Парольная фраза (можно сгенерировать тут - https://phpsolved.com/phpmyadmin-blowfish-secret-generator/
$cfg['blowfish_secret'] = 'H2OxcGXxflSd8JwrwVlh6KW6s2rER63i'; 
# папка временных файлов
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

6. Создаем базу в MySQL для phpMyAdmin:

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

7. Создайте каталог для файлов конфигурации phpMyAdmin, таких как файл htpass:

mkdir /etc/phpmyadmin/

8. Создаем конфигурационный файл для алиаса phpMyAdmin в Apache:

touch /etc/apache2/conf-available/phpmyadmin.conf
ln -s /etc/apache2/conf-available/phpmyadmin.conf /etc/apache2/conf-enabled/phpmyadmin.conf

nano /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>

# 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>

9. Включаем конфигурацию:

a2enconf phpmyadmin.conf

10. Перезапускаем наш Apache:

systemctl reload apache2

11. Создаем привилегированного пользователя для phpMyAdmin и MySQL, под этим пользователем и будем логиниться в phpMyAdmin:

mysql -u root
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' IDENTIFIED BY 'admin_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Готово. Теперь phpMyAdmin доступен по адресу http://IP_our_domain/phpmyadmin.

Top