Установка phpMyAdmin в Debian 10

phpMyAdmin давно стал де-факто стандартным инструментом для управления базами данных MySQL, поэтому в Debian 10 многих ждало неприятное открытие - данный пакет был исключен из репозитория. Но не стоит отчаиваться, phpMyAdmin - это обычное PHP-приложение, такое же как движок сайта и не составит никакого труда установить его самостоятельно. Более того, таким образом вы получите самую последнюю версию продукта от разработчиков. Также вы можете воспользоваться данной инструкцией и для иных дистрибутивов, в случае если хотите иметь актуальную версию утилиты.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Важно!

Важно! Если вы хотите использовать данную инструкцию в среде отличной от Debian 10 и у вас уже установлена версия из репозитория, то перед тем, как приступать к описанным ниже действиям ее следует удалить.

Прежде всего установим зависимости и рекомендуемые пакеты, часть из них уже может быть установлена в вашей системе, но это никак не повлияет на дальнейшие действия, просто в процессе установки вы получите сообщение, что данный пакет уже установлен:

1apt install php-mbstring php-zip php-gd php-curl php-json php-gettext php-xml php-phpseclib

Затем создадим необходимые директории:

1mkdir -p /var/lib/phpmyadmin/tmp
2mkdir /usr/share/phpmyadmin

И установим нужного владельца:

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

Перейдем в домашнюю директорию и скачаем архив с официального сайта:

1cd
2wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz

В нашем случае это версия 5.0.2, если вы хотите скачать иную версию - просто поменяйте цифры в ссылке, структура URL остается неизменной.

Распакуем архив сразу в целевую директорию:

1tar xvf phpMyAdmin-5.0.2-all-languages.tar.gz -C /usr/share/phpmyadmin --strip-components 1

Ключ**--strip-components 1** предписывает не создавать вложенную папку первого уровня.

Изменим рабочую директорию и скопируем файл настроек из шаблона:

1cd /usr/share/phpmyadmin
2cp config.sample.inc.php config.inc.php

Затем откроем файл config.inc.php на редактирование. Первым делом найдем директиву blowfish_secret и установим для нее парольную фразу длинной 32 символа:

1$cfg['blowfish_secret'] = '!KzD8t^2L2e6AxFSDqM#%5voCuNquJKW';

Затем раскомментируем блок User used to manipulate with storage и в опции controlpass установим пароль для служебного пользователя pma:

1/* User used to manipulate with storage */
2$cfg['Servers'][$i]['controlhost'] = '';
3$cfg['Servers'][$i]['controlport'] = '';
4$cfg['Servers'][$i]['controluser'] = 'pma';
5$cfg['Servers'][$i]['controlpass'] = 'ibuQKE!6RGL$2Ph!';

Еще ниже полностью раскомментируем секцию Storage database and tables:

 1/* Storage database and tables */
 2$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 3$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
 4$cfg['Servers'][$i]['relation'] = 'pma__relation';
 5$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
 6$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
 7$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
 8$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
 9$cfg['Servers'][$i]['history'] = 'pma__history';
10$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
11$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
12$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
13$cfg['Servers'][$i]['recent'] = 'pma__recent';
14$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
15$cfg['Servers'][$i]['users'] = 'pma__users';
16$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
17$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
18$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
19$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
20$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
21$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

А после нее добавим следующую опцию:

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

Еще ниже найдем и раскомментируем опцию, отвечающую за язык по умолчанию:

1$cfg['DefaultLang'] = 'ru';

В нашем случае это русский, посмотреть доступные языки и их коды можно в директории /usr/share/phpmyadmin/locale.

Теперь создадим пользователя СУБД и назначим ему необходимые права, для начала войдем в консоль MySQL (MariaDB):

1mysql -u root

и выполним там следующие команды:

1GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'ibuQKE!6RGL$2Ph!';

Обратите внимание, что в опции IDENTIFIED BY мы должны указать тот же пароль, который был задан в controlpass конфигурационного файла.

Сбросим кеш привилегий и выйдем из консоли:

1FLUSH PRIVILEGES;
2QUIT

После чего создадим служебную базу данных и произведем ее начальное заполнение:

1mysql -u root < sql/create_tables.sql

На этом установка phpMyAdmin закончена. В целях безопасности удалим служебную директорию setup:

1rm -rf /usr/share/phpmyadmin/setup

Далее мы рассмотрим подключение утилиты к популярным веб-серверам.

Настройка Apache 2 для работы с phpMyAdmin

Создадим файл конфигурации Apache:

1touch /etc/apache2/conf-available/pma.conf

И внесем в него следующие директивы:

 1# phpMyAdmin default Apache configuration
 2Alias /phpmyadmin /usr/share/phpmyadmin
 3<Directory /usr/share/phpmyadmin>
 4    Options SymLinksIfOwnerMatch
 5    DirectoryIndex index.php
 6 <IfModule mod_php.c>
 7    <IfModule mod_mime.c>
 8       AddType application/x-httpd-php .php
 9    </IfModule>
10    <FilesMatch ".+\.php$">
11       SetHandler application/x-httpd-php
12    </FilesMatch>
13    php_value include_path .
14    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
15    php_admin_value open_basedir /usr/share/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/php/phpseclib/
16    php_admin_value mbstring.func_overload 0
17 </IfModule>
18</Directory>
19
20# Disallow web access to directories that don't need it
21<Directory /usr/share/phpmyadmin/templates>
22   Require all denied
23</Directory>
24<Directory /usr/share/phpmyadmin/libraries>
25   Require all denied
26</Directory>

Сохраним файл и подключим конфигурацию:

1a2enconf pma

Проверим конфигурацию Apache на ошибки:

1apachectl -t

И перезапустим веб-сервер:

1service apache2 restart

Теперь можно набрать в браузере http://example.com/phpmyadmin, и вы попадете в интерфейс утилиты (где вместо example.com - адрес вашего сайта):

Настройка NGINX для работы с phpMyAdmin

Будем считать, что у вас уже установлен NGINX и PHP-FPM по нашей инструкции, в противном случае вам потребуется откорректировать пути в соответствии с собственными настройками.

Создадим новый шаблон:

1touch /etc/nginx/templates/phpmyadmin.conf

И внесем в него следующий текст:

 1location /phpmyadmin {
 2root /usr/share/;
 3index index.php;
 4
 5location ~ ^/phpmyadmin/(.+\.php)$ {
 6   try_files $uri =404;
 7   root /usr/share/;
 8   fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
 9   fastcgi_index index.php;
10   include fastcgi_params;
11   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
12 }
13 location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
14   root /usr/share/;
15   expires 1M;
16 }
17}

Сохраним его и подключим к нужным сайтам добавим в конце их конфигурационных файлов директиву:

1include /etc/nginx/templates/phpmyadmin.conf;

Проверим правильность конфигурации NGINX:

1nginx -t

И перезапустим службы:

1service php7.3-fpm restart
2service nginx restart

Затем точно также наберем http://example.com/phpmyadmin и убедимся в работоспособности утилиты:

Как видим, установить phpMyAdmin вручную достаточно просто. Для обновления вам потребуется просто скачать архив с новой версией и распаковать поверх существующей установки, не забыв удалить потом директорию setup. В ряде случаев потребуется обновить служебную базу данных, скрипты для этого находятся в директории sql, подробности вы сможете узнать в официальной документации к новой версии.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал