Исправляем ошибку «Call to undefined function PMA_selectServer()» в phpMyAdmin 4.0.0
Ошибка «Call to undefined function PMA_selectServer()» проявляется при установке в конфигурации config.inc.php
phpMyAdmin более одного сервера.
Например:
<?php $i = 0; $cfg['Servers'] = array(); $i++; $cfg['Servers'][$i]['host'] = 'server_name_1'; $i++; $cfg['Servers'][$i]['host'] = 'server_name_2'; ?>
Сама функция PMA_selectServer
определена в файле libraries/select_server.lib.php, но при настройках по умолчанию он просто не подключается.
Данную ошибку вы можете понять из кода файла index.php на линии 120:
<?php if (! $cfg['NavigationDisplayServers'] && (count($cfg['Servers']) > 1 || $server == 0 && count($cfg['Servers']) == 1) ) { echo '<li id="li_select_server" class="no_bullets" >'; include_once 'libraries/select_server.lib.php'; echo PMA_Util::getImage('s_host.png') . " " . PMA_selectServer(true, true); echo '</li>'; } ?>
Для исправления достаточно в конфигурационном файле дописать:
<?php $cfg['NavigationDisplayServers'] = false; ?>
Этот рецепт избавит вас от данной ошибки, но лишит вас возможности выбирать сервер из списка в верхнем фрейме
Если вы хотите оставить возможность выбора сервера из списка, но избавиться от данной ошибки, можно поправить файл libraries/navigation/NavigationHeader.class.php на линии 259 следующим образом:
заменить
<?php include_once './libraries/select_server.lib.php'; ?>
на
<?php include_once dirname(dirname(__FILE__)).'/select_server.lib.php'; ?>