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

Обновлено Обновлено: Опубликовано Опубликовано:

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

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

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

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

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

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

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

Строка Описание
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.

# MySQL # Базы данных # Серверы # Управление
Дмитрий Моск — частный мастер
Был ли вам полезен этот скрипт?

Да            Нет