Обновление phpmyadmin после установки Vesta (debian)
Обновление phpmyadmin после установки Vesta (debian)
Решил создать отдельный топик, дабы не засорять другие (спасибо за полученные ответы в них).
Хочу разобраться с этим вопросом т.к. знаний не хватает а "любопытство и дотошность" не дают покоя :)
Думаю для будущих ньюберов будет актуально.
В качестве операционной системы системы для поднятия web сервера использую debian 7 с подключенными репозиториями по умолчанию:
После установки контрольной панели 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) перешел в каталог:
3) удалил все файлы внутри каталога: (затер версию phpmyadmin которая ставилась с Vest'ой)
4) скачал архив дистрибутива версии: 4.5.5.1 с оф. сайта:
5) распаковал архив: (создалась отдельная папка с именем архива)
6) перешел в предыдущий каталог:
7) перенес файлы и папки из папки дистрибутива в папку phpmyadmin:
После чего захожу в интерфейс phpmyadmin в браузере - все открылось, все хорошо. Показывает актуальную версию: 4.5.5.1 но внизу неприятное предупреждение появилось: "В конфигурационном файле необходимо задать парольную фразу (blowfish_secret)."
А теперь подскажите в каком конфигурационном файле, мне нужно задать эту парольную фразу?
Есть файл конфигурации который появился вместе с установкой Vesta по пути: /etc/phpmyadmin/config.inc.php
Который вроде как срабатывал и дружил с предыдущей версией phpmyadmin, почему сейчас не дружит?
Файл не менялся. Как понимаю за данное предупреждение в нем отвечает следующий кусок кода:
Т.е. каким-то образом видимо где-то прописывается подключение файла "/etc/phpmyadmin/config.inc.php" в качестве конфига, только вот я не знаю где )
Читал доки по phpmyadmin на русскоязычном сайте, но до истины не докопался.
Глаза замусолились - пора спать )
Надеюсь порадуете меня интересными ответами - всем мир ;)
Хочу разобраться с этим вопросом т.к. знаний не хватает а "любопытство и дотошность" не дают покоя :)
Думаю для будущих ньюберов будет актуально.
В качестве операционной системы системы для поднятия 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
Тут собственно возникает первый вопрос, хотелось бы получить на него развернутый ответ: Почему репозиторий 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
Code: Select all
rm -rf *
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
Code: Select all
unzip phpMyAdmin-4.5.5.1-all-languages.zip
6) перешел в предыдущий каталог:
Code: Select all
cd ..
Code: Select all
mv phpmyadmin/phpMyAdmin-4.5.5.1-all-languages/* phpmyadmin
А теперь подскажите в каком конфигурационном файле, мне нужно задать эту парольную фразу?
Есть файл конфигурации который появился вместе с установкой 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');
}
Читал доки по phpmyadmin на русскоязычном сайте, но до истины не докопался.
Глаза замусолились - пора спать )
Надеюсь порадуете меня интересными ответами - всем мир ;)
Re: Обновление phpmyadmin после установки Vesta (debian)
Небольшой прогресс по делу...
Умные люди с форума phpmyadmin подсказали(открыли глаза мне), что дистрибутив phpmyadmin скачанный с официального сайта отличается от того который устанавливается в debian с репозитория.
У версии debian конфигурационный файл находится тут:
В то время как у версии скачанной с официального сайта тут:
Т.е. для обновления phpmyadmin в debian помимо тех манипуляций которые я описал в предыдущем посте, нужно скопировать конфигурационный файл config.inc.php из /etc/phpmyadmin/ в /usr/share/phpmyadmin/
Команда для этого следующая:
Но на этом манипуляции не заканчиваются )))
Если открыть phpmyadmin в браузере то появятся целых 2 сервера с одинаковым названием localhost.
Причем если зайти в первый, то ругается на что-то и выводится предупреждение, а если во второй, то все открывается без предупреждений (скриншоты):

После того как открыл файл конфига config.inc.php и удалил следующий код:
Проблема с дублированием localhost при входе решилась.
Скажите с чем связана данная ошибка? Ведь раньше до обновления phpmyadmin когда этот же конфигурационный файл лежал в папке /etc/phpmyadmin данной проблемы не было.
Вот мой конфиг целиком(до удаления куска кода выше):
Конфиг начинается со следующего кода, что он делает, зачем он нужен?
Далее:
Тут понятно интуитивно вроде, в целом этот кусок кода можно заменить на строчку:
Далее:
Хрен знает что это т.к. файл /var/lib/phpmyadmin/config.inc.php - пустой
Далее:
Это хз что такое, вроде особо не мешает.
Далее:
В файле /etc/phpmyadmin/config-db.php хранятся данные: имя пользователя phpmyadmin, пароль этого пользователя, название базы: phpmyadmin - один фиг попробовал зайти под этими данными - не получилось. Не знаю нужно ли это вообще - хз?
Далее:
Собственно тот кусок кода после удаления которого дублирование серверов localhost при входе в phpmyadmin прекратилось. Тоже хз зачем он нужен - может кто-то пояснит знающий?
Далее:
Какие-то директории для сохраненных и загруженных файлов, почему-то пустые, хз тоже что это такое )
Напоследок еще какая-то хрень:
Ну а далее уже хоть что-то полезное и понятное (добавка в конфиг после запуска скрипта из этой темы)
Что братцы посоветуете?
Все что попадает под термин "хрень" удалить к чертям и сделать простой и понятный конфиг? )))
Или все же что-то оставить в живых?
Ну а вообще просто любопытно разобраться в этих "каракулях" ведь из-за них рядовому пользователю без проблем не удастся обновить phpmyadmin на линуксовой машинке.
Да и вообще я так пока еще и не докопался до истины(т.к. никто не дал внятного ответа), стоит ли вообще обновлять phpmyadmin на debian 7 ведь иначе он бы был доступен в системном репозитории или я не прав?
Умные люди с форума phpmyadmin подсказали(открыли глаза мне), что дистрибутив phpmyadmin скачанный с официального сайта отличается от того который устанавливается в debian с репозитория.
У версии debian конфигурационный файл находится тут:
Code: Select all
/etc/phpmyadmin/config.inc.php
Code: Select all
/usr/share/phpmyadmin/config.inc.php
Команда для этого следующая:
Code: Select all
cp /etc/phpmyadmin/config.inc.php /usr/share/phpmyadmin
Если открыть phpmyadmin в браузере то появятся целых 2 сервера с одинаковым названием localhost.
Причем если зайти в первый, то ругается на что-то и выводится предупреждение, а если во второй, то все открывается без предупреждений (скриншоты):
SpoilerShow



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++;
}
Скажите с чем связана данная ошибка? Ведь раньше до обновления 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');
}
Далее:
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');
}
Далее:
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++;
}
Далее:
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 ведь иначе он бы был доступен в системном репозитории или я не прав?