Автоматическое формирование списка серверов в phpMyAdmin
Тематические термины: phpMyAdmin, MariaDB, MySQL, PHP
Применимо к ситуации, когда используется общий веб-интерфейс управления базами данных MySQL и MariaDB и необходимо упростить процесс добавления серверов в список.
В PHPMyAdmin данный список формирует скрипт PHP. На выходе должен получиться массив $cfg с определенными параметрами.
Пример скрипта
Скрипт, отвечающий за формирование списка серверов находится в корне phpMyAdmin и называется config.inc.php. Его мы приводим к следующему виду:
- <?php
- /* Servers configuration */
- /*
- Для добавление серверов в список редактируем файл
- vi /var/www/phpMyAdmin/servers_list.txt
- */
- $servers_all = file_get_contents("servers_list.txt");
- $servers_arr = explode(PHP_EOL, $servers_all);
- $servers_arr = array_filter($servers_arr, function($value) { return $value !== ''; });
- sort($servers_arr);
- foreach ($servers_arr as $key => $s_line) {
- if ($s_line) {
- $i = $key + 1;
- $s_name = current(explode(' ', $s_line));
- $cfg['Servers'][$i]['verbose'] = $s_line;
- $cfg['Servers'][$i]['host'] = $s_name;
- $cfg['Servers'][$i]['port'] = '';
- $cfg['Servers'][$i]['socket'] = '';
- $cfg['Servers'][$i]['connect_type'] = 'tcp';
- $cfg['Servers'][$i]['extension'] = 'mysqli';
- $cfg['Servers'][$i]['nopassword'] = true;
- $cfg['Servers'][$i]['auth_type'] = 'cookie';
- }
- }
- /* End of servers configuration */
- $cfg['blowfish_secret'] = '52fa21575d95a6.87747619';
- $cfg['DefaultLang'] = 'ru';
- $cfg['ServerDefault'] = 1;
- $cfg['UploadDir'] = '';
- $cfg['SaveDir'] = '';
- $cfg['LoginCookieValidity'] = 28800;
- $cfg['ExecTimeLimit']=0;
- ?>
Описание скрипта
Строка | Описание |
---|---|
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.