Автоматическое формирование списка серверов в phpMyAdmin

Тематические термины: phpMyAdmin , MariaDB , MySQL , PHP

Применимо к ситуации, когда используется общий веб-интерфейс управления базами данных MySQL и MariaDB и необходимо упростить процесс добавления серверов в список.

В PHPMyAdmin данный список формирует скрипт PHP. На выходе должен получиться массив $cfg с определенными параметрами.

Пример скрипта

Скрипт, отвечающий за формирование списка серверов находится в корне phpMyAdmin и называется config.inc.php. Его мы приводим к следующему виду:

  1. <?php
  2. /* Servers configuration */
  3. /*
  4. Для добавление серверов в список редактируем файл
  5. vi /var/www/phpMyAdmin/servers_list.txt
  6. */
  7. $servers_all = file_get_contents(«servers_list.txt»);
  8. $servers_arr = explode(PHP_EOL, $servers_all);
  9. $servers_arr = array_filter($servers_arr, function($value) { return $value !== »; });
  10. sort($servers_arr);
  11. foreach ($servers_arr as $key => $s_line) {
  12. if ($s_line) {
  13. $i = $key + 1;
  14. $s_name = current(explode(‘ ‘, $s_line));
  15. $cfg[‘Servers’][$i][‘verbose’] = $s_line;
  16. $cfg[‘Servers’][$i][‘host’] = $s_name;
  17. $cfg[‘Servers’][$i][‘port’] = »;
  18. $cfg[‘Servers’][$i][‘socket’] = »;
  19. $cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;
  20. $cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;
  21. $cfg[‘Servers’][$i][‘nopassword’] = true;
  22. $cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
  23. }
  24. }
  25. /* End of servers configuration */
  26. $cfg[‘blowfish_secret’] = ’52fa21575d95a6.87747619′;
  27. $cfg[‘DefaultLang’] = ‘ru’;
  28. $cfg[‘ServerDefault’] = 1;
  29. $cfg[‘UploadDir’] = »;
  30. $cfg[‘SaveDir’] = »;
  31. $cfg[‘LoginCookieValidity’] = 28800;
  32. $cfg[‘ExecTimeLimit’]=0;
  33. ?>

Описание скрипта

Строка Описание
1, 39 Открываем и закрываем PHP код. Обрабатывается интерпретатором.
3 — 7, 29 Комментарий.
9 Читаем файл servers_list.txt и заносим его содержимое в переменную $servers_all
10 Создаем массив данных на основе данных из файла. В качестве разделителя используем перенос строки.
11 Убираем из массива элементы с пустыми значениями.
12 Сортируем массив, чтобы наш список серверов был аккуратный.
14 — 27 Проходим по массиву с серверами и для каждого из них формируем конфигурационный массив $cfg[‘Servers’].
31 — 37 Задаем общие параметры для phpMyAdmin

Список серверов

Далее в корне phpMyAdmin создаем файл servers_list.txt со следующим содержимым:

Server1 (Описание сервера 1)
Server2 (Описание сервера 2)
Server3 (Описание сервера 3)

* скрипт написан таким образом, чтобы в качестве сервера подключения использовать часть до пробела. А полное название использует для отображения серевра в списке. Таким образом можно описывать назначение серверов для удобства.

Обратите внимание, что для подключения мы используем доменные имена серверов. Это значит, что они должны разрешаться в DNS или быть прописаны в файле hosts на сервере phpMyAdmin.

EnglishRussianUkrainian