-
Stary MySQL, w miarę nowy PHP i najnowszy phpMyAdmin
Jakiś czas temu dostałem zadanie aktualizacji PHP z domyślnej wersji dla CentOS 6 tj. 5.3 do 5.6. Generalnie nie było z tym problemu, dopóki nie miałem odpalić phpMyAdmin-a. Przy pomocy „seryjnej” wersji nie dało się nawet zalogować. Wgrałem więc najnowszą jak na tamten czas tj. 4.8.2. Pomogło, udało się zalogować, ale na ekranie było dużo komunikatów w czerwonych ramkach m.in „Unknown system variable 'lc_messages'”. Jak się dowiedziałem ze strony phpMyAdmin-a:
– phpMyAdmin 4.8.x dla MySQL 5.5 i PHP 5.5-7.2
– phpMyAdmin 4.0 dla MySQL 5 i PHP 5.2
Ja posiadałem MySQL 5.1 i PHP 5.6, więc de facto żadna z wersji phpMyAdmin-a nie jest kompatybilna. Jak żyć? Aktualizować MySQL? Myślałem o tym, ale znalazłem rozwiązanie na stronie https://stackoverflow.com/questions/38084464/1193-unknown-system-variable-lc-messages-when-trying-to-login-to-phpmyadmin i pozwolę sobie z niego zaczerpnąć. Ja pobrałem najnowszą wersję wspomnianego oprogramowania z https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.zip i rozpakowałem do „/usr/share/phpMyAdmin”.wget https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.zip
unzip phpMyAdmin-4.8.2-all-languages.zip
mv /usr/share/phpMyAdmin /usr/share/phpMyAdmin_old
mv phpMyAdmin-4.8.2-all-languages /usr/share/phpMyAdmin
Następnie za radą z powyższej strony, edytujemy dwa pliki „/usr/share/phpMyAdmin/libraries/common.inc.php”, usuwając lub komentując
if ($GLOBALS['dbi']->getVersion() < $cfg['MysqlMinVersion']['internal']) {
Core::fatalError(
__('You should upgrade to %s %s or later.'),
array('MySQL', $cfg['MysqlMinVersion']['human'])
);
}
i robiąc to samo w kolejnym pliku tj. „/usr/share/phpMyAdmin/libraries/classes/DatabaseInterface.php” z następującym wpisem
if (! empty($locale)) {
$this->query("SET lc_messages = '" . $locale . "';", $link, self::QUERY_STORE);
}
Po tych dwóch modyfikacjach, możemy się cieszyć najnowszą wersją phpMyAdmin-a z w miarę dzisiejszą wersją PHP i starym MySQL-em.