Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Сервер баз данных
  • Search

Обновление phpmyadmin после установки Vesta (debian)

Вопросы по работе Сервера баз данных
MySQL, PostgreSQL, MariaDB, Percona Server, phpMyAdmin, phpPgAdmin
Post Reply
  • Print view
Advanced search
2 posts • Page 1 of 1
dudilona
Posts: 17
Joined: Wed Mar 02, 2016 5:12 pm

Обновление phpmyadmin после установки Vesta (debian)
  • Quote

Post by dudilona » Mon Mar 07, 2016 1:53 am

Решил создать отдельный топик, дабы не засорять другие (спасибо за полученные ответы в них).
Хочу разобраться с этим вопросом т.к. знаний не хватает а "любопытство и дотошность" не дают покоя :)
Думаю для будущих ньюберов будет актуально.

В качестве операционной системы системы для поднятия web сервера использую debian 7 с подключенными репозиториями по умолчанию:

Code: Select all

deb http://mirror.yandex.ru/debian wheezy main contrib non-free
deb-src http://mirror.yandex.ru/debian wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
После установки контрольной панели Vesta имею версию phpmyadmin - v.3.4.11.1

Тут собственно возникает первый вопрос, хотелось бы получить на него развернутый ответ: Почему репозиторий debian не содержит в себе последние версии пакетов как например phpmyadmin? В чем основная причина? Или пакет phpmyadmin v.3.4.11.1 не теряет своей актуальности и нет веских причин его обновлять?

Если рассуждать логически, то возникает понимание, что в новых версиях пакета phpmyadmin пофиксили многие моменты (улучшили безопасность, какие-то ошибки исправили и прочее), что говорит о том, что лучше использовать новую версию или я не прав?

Если я не прав - лучше так и скажите: "Чувак не парься, сиди на v.3.4.11.1 и мозг не забивай ненужными вещами! Сервак поднял, сайт залил, все работает - что тебе еще нужно? - все будет у тебя пучком )))"
- Конечно такой ответ меня бы порадовал больше всего. Но на деле мне присылают ссылку в качестве ответа: http://demo.phpmyadmin.net/master-config/changelog.php , которая погружает меня и мои сомнения на новую глубину )

Ну да ладно, стартанули - значит дело надо довести до конца. Допустим принял решение обновить phpmyadmin.
Конечно меня интересует самый простой и негеморойный способ. Имея двухнедельный опыт общения с linux, хотелось быстро найти какую-нить ссылку на репозиторий, вбить пару команд и вуаля - все готово! Только вот фиг - не нашел я такой ссылки. Везде что-то да не так или просто мозг у меня уже вскипел и я не понимаю ничего )))
(буду признателен если кто поделится опытом как обновить phpmyadmin из доверенного репозитория)

В общем решил качать дистрибутив с официального сайта. Благо подсказали мне в какую папку все закачивать, спасибо imperio.

Что я делал:
1) зашел в систему под root пользователем
2) перешел в каталог:

Code: Select all

cd /usr/share/phpmyadmin
3) удалил все файлы внутри каталога:

Code: Select all

rm -rf *
(затер версию phpmyadmin которая ставилась с Vest'ой)
4) скачал архив дистрибутива версии: 4.5.5.1 с оф. сайта:

Code: Select all

wget https://files.phpmyadmin.net/phpMyAdmin/4.5.5.1/phpMyAdmin-4.5.5.1-all-languages.zip
5) распаковал архив:

Code: Select all

unzip phpMyAdmin-4.5.5.1-all-languages.zip
(создалась отдельная папка с именем архива)
6) перешел в предыдущий каталог:

Code: Select all

cd ..
7) перенес файлы и папки из папки дистрибутива в папку phpmyadmin:

Code: Select all

mv phpmyadmin/phpMyAdmin-4.5.5.1-all-languages/* phpmyadmin
После чего захожу в интерфейс phpmyadmin в браузере - все открылось, все хорошо. Показывает актуальную версию: 4.5.5.1 но внизу неприятное предупреждение появилось: "В конфигурационном файле необходимо задать парольную фразу (blowfish_secret)."

А теперь подскажите в каком конфигурационном файле, мне нужно задать эту парольную фразу?
Есть файл конфигурации который появился вместе с установкой Vesta по пути: /etc/phpmyadmin/config.inc.php

Который вроде как срабатывал и дружил с предыдущей версией phpmyadmin, почему сейчас не дружит?

Файл не менялся. Как понимаю за данное предупреждение в нем отвечает следующий кусок кода:

Code: Select all

if (check_file_access('/var/lib/phpmyadmin/blowfish_secret.inc.php')) {
    require('/var/lib/phpmyadmin/blowfish_secret.inc.php');
}
Т.е. каким-то образом видимо где-то прописывается подключение файла "/etc/phpmyadmin/config.inc.php" в качестве конфига, только вот я не знаю где )

Читал доки по phpmyadmin на русскоязычном сайте, но до истины не докопался.
Глаза замусолились - пора спать )
Надеюсь порадуете меня интересными ответами - всем мир ;)
Top

dudilona
Posts: 17
Joined: Wed Mar 02, 2016 5:12 pm

Re: Обновление phpmyadmin после установки Vesta (debian)
  • Quote

Post by dudilona » Fri Mar 11, 2016 1:13 am

Небольшой прогресс по делу...

Умные люди с форума phpmyadmin подсказали(открыли глаза мне), что дистрибутив phpmyadmin скачанный с официального сайта отличается от того который устанавливается в debian с репозитория.

У версии debian конфигурационный файл находится тут:

Code: Select all

/etc/phpmyadmin/config.inc.php
В то время как у версии скачанной с официального сайта тут:

Code: Select all

/usr/share/phpmyadmin/config.inc.php
Т.е. для обновления phpmyadmin в debian помимо тех манипуляций которые я описал в предыдущем посте, нужно скопировать конфигурационный файл config.inc.php из /etc/phpmyadmin/ в /usr/share/phpmyadmin/

Команда для этого следующая:

Code: Select all

cp /etc/phpmyadmin/config.inc.php /usr/share/phpmyadmin
Но на этом манипуляции не заканчиваются )))
Если открыть phpmyadmin в браузере то появятся целых 2 сервера с одинаковым названием localhost.
Причем если зайти в первый, то ругается на что-то и выводится предупреждение, а если во второй, то все открывается без предупреждений (скриншоты):
SpoilerShow
Image
Image
Image
После того как открыл файл конфига config.inc.php и удалил следующий код:

Code: Select all

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    if (empty($dbserver)) $dbserver = 'localhost';
    $cfg['Servers'][$i]['host'] = $dbserver;

    if (!empty($dbport) || $dbserver != 'localhost') {
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['port'] = $dbport;
    }
    //$cfg['Servers'][$i]['compress'] = false;
    /* Select mysqli if your server has it */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    /* Optional: User for advanced features */
    /* Optional: Advanced phpMyAdmin features */

    /* Uncomment the following to enable logging in to passwordless accounts,
     * after taking note of the associated security risks. */
    // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

    /* Advance to next server for rest of config */
    $i++;
}
Проблема с дублированием localhost при входе решилась.

Скажите с чем связана данная ошибка? Ведь раньше до обновления phpmyadmin когда этот же конфигурационный файл лежал в папке /etc/phpmyadmin данной проблемы не было.

Вот мой конфиг целиком(до удаления куска кода выше):
SpoilerShow

Code: Select all

<?php
/**
 * Debian local configuration file
 *
 * This file overrides the settings made by phpMyAdmin interactive setup
 * utility.
 *
 * For example configuration see
 *   /usr/share/doc/phpmyadmin/examples/config.sample.inc.php
 * or
 *   /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php
 *
 * NOTE: do not add security sensitive data to this file (like passwords)
 * unless you really know what you're doing. If you do, any user that can
 * run PHP or CGI on your webserver will be able to read them. If you still
 * want to do this, make sure to properly secure the access to this file
 * (also on the filesystem level).
 */

function check_file_access($path)
{
    if (is_readable($path)) {
        return true;
    } else {
        error_log(
            'phpmyadmin: Failed to load ' . $path
            . ' Check group www-data has read access and open_basedir restrictions.'
        );
        return false;
    }
}

// Load secret generated on postinst
if (check_file_access('/var/lib/phpmyadmin/blowfish_secret.inc.php')) {
    require('/var/lib/phpmyadmin/blowfish_secret.inc.php');
}

// Load autoconf local config
if (check_file_access('/var/lib/phpmyadmin/config.inc.php')) {
    require('/var/lib/phpmyadmin/config.inc.php');
}

/**
 * Server(s) configuration
 */
$i = 0;
// The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use $cfg['Servers'][0].
// You can disable a server config entry by setting host to ''.
$i++;

/**
 * Read configuration from dbconfig-common
 * You can regenerate it using: dpkg-reconfigure -plow phpmyadmin
 */
if (check_file_access('/etc/phpmyadmin/config-db.php')) {
    require('/etc/phpmyadmin/config-db.php');
}

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    if (empty($dbserver)) $dbserver = 'localhost';
    $cfg['Servers'][$i]['host'] = $dbserver;

    if (!empty($dbport) || $dbserver != 'localhost') {
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['port'] = $dbport;
    }
    //$cfg['Servers'][$i]['compress'] = false;
    /* Select mysqli if your server has it */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    /* Optional: User for advanced features */
    /* Optional: Advanced phpMyAdmin features */

    /* Uncomment the following to enable logging in to passwordless accounts,
     * after taking note of the associated security risks. */
    // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

    /* Advance to next server for rest of config */
    $i++;
}

/* Authentication type */
//$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
//$cfg['Servers'][$i]['host'] = 'localhost';
//$cfg['Servers'][$i]['connect_type'] = 'tcp';
//$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
//$cfg['Servers'][$i]['extension'] = 'mysql';
/* Optional: User for advanced features */

/* Storage database and tables */
/* Uncomment the following to enable logging in to passwordless accounts,
 * after taking note of the associated security risks. */
// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

/*
 * End of servers configuration
 */

/*
 * Directories for saving/loading files from server
 */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

/* Support additional configurations */
foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename)
{
    include($filename);
}


$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$i = 1;
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'h6GadtxrKywI3I4CWIGLKvrhcM3cYSxc';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
Конфиг начинается со следующего кода, что он делает, зачем он нужен?

Code: Select all

function check_file_access($path)
{
    if (is_readable($path)) {
        return true;
    } else {
        error_log(
            'phpmyadmin: Failed to load ' . $path
            . ' Check group www-data has read access and open_basedir restrictions.'
        );
        return false;
    }
}
Далее:

Code: Select all

// Load secret generated on postinst
if (check_file_access('/var/lib/phpmyadmin/blowfish_secret.inc.php')) {
    require('/var/lib/phpmyadmin/blowfish_secret.inc.php');
}
Тут понятно интуитивно вроде, в целом этот кусок кода можно заменить на строчку:

Code: Select all

$cfg['blowfish_secret'] = 'bxDM11qZ2lbRWwnUXLGqGARI';
Далее:

Code: Select all

// Load autoconf local config
if (check_file_access('/var/lib/phpmyadmin/config.inc.php')) {
    require('/var/lib/phpmyadmin/config.inc.php');
}
Хрен знает что это т.к. файл /var/lib/phpmyadmin/config.inc.php - пустой

Далее:

Code: Select all

/**
 * Server(s) configuration
 */
$i = 0;
// The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use $cfg['Servers'][0].
// You can disable a server config entry by setting host to ''.
$i++;

/**
Это хз что такое, вроде особо не мешает.

Далее:

Code: Select all

/**
 * Read configuration from dbconfig-common
 * You can regenerate it using: dpkg-reconfigure -plow phpmyadmin
 */
if (check_file_access('/etc/phpmyadmin/config-db.php')) {
    require('/etc/phpmyadmin/config-db.php');
}
В файле /etc/phpmyadmin/config-db.php хранятся данные: имя пользователя phpmyadmin, пароль этого пользователя, название базы: phpmyadmin - один фиг попробовал зайти под этими данными - не получилось. Не знаю нужно ли это вообще - хз?

Далее:

Code: Select all

/* Configure according to dbconfig-common if enabled */
if (!empty($dbname)) {
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    if (empty($dbserver)) $dbserver = 'localhost';
    $cfg['Servers'][$i]['host'] = $dbserver;

    if (!empty($dbport) || $dbserver != 'localhost') {
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['port'] = $dbport;
    }
    //$cfg['Servers'][$i]['compress'] = false;
    /* Select mysqli if your server has it */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    /* Optional: User for advanced features */
    /* Optional: Advanced phpMyAdmin features */

    /* Uncomment the following to enable logging in to passwordless accounts,
     * after taking note of the associated security risks. */
    // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

    /* Advance to next server for rest of config */
    $i++;
}
Собственно тот кусок кода после удаления которого дублирование серверов localhost при входе в phpmyadmin прекратилось. Тоже хз зачем он нужен - может кто-то пояснит знающий?

Далее:

Code: Select all

/*
 * Directories for saving/loading files from server
 */
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
Какие-то директории для сохраненных и загруженных файлов, почему-то пустые, хз тоже что это такое )

Напоследок еще какая-то хрень:

Code: Select all

/* Support additional configurations */
foreach (glob('/etc/phpmyadmin/conf.d/*.php') as $filename)
{
    include($filename);
}
Ну а далее уже хоть что-то полезное и понятное (добавка в конфиг после запуска скрипта из этой темы)

Code: Select all

$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$i = 1;
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'h6GadtxrKywI3I4CWIGLKvrhcM3cYSxc';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
Что братцы посоветуете?
Все что попадает под термин "хрень" удалить к чертям и сделать простой и понятный конфиг? )))
Или все же что-то оставить в живых?

Ну а вообще просто любопытно разобраться в этих "каракулях" ведь из-за них рядовому пользователю без проблем не удастся обновить phpmyadmin на линуксовой машинке.

Да и вообще я так пока еще и не докопался до истины(т.к. никто не дал внятного ответа), стоит ли вообще обновлять phpmyadmin на debian 7 ведь иначе он бы был доступен в системном репозитории или я не прав?
Top


Post Reply
  • Print view

2 posts • Page 1 of 1

Return to “Сервер баз данных”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password