Помилка "Повідомлення про депрекацію" в phpmyadmin з 16.04


11

Я отримую помилки під час запуску phpmyadmin в 16.04:

Deprecation Notice in ./../php/php-gettext/streams.php#48

Backtrace

./../php/php-gettext/gettext.inc#41: require()
./libraries/select_lang.lib.php#477: require_once(./../php/php-gettext/gettext.inc)
./libraries/common.inc.php#569: require(./libraries/select_lang.lib.php)
./index.php#12: require_once(./libraries/common.inc.php)

Це продовжується і з тими ж зворотними наслідками, що і вище:

Deprecation Notice in ./../php/php-gettext/streams.php#84
Deprecation Notice in ./../php/php-gettext/streams.php#145
Deprecation Notice in ./../php/php-gettext/gettext.php#36

Я оновив та підтвердив, що я перебуваю на останньому gettext та mbstring. Будь-які думки щодо вирішення?


У цьому підручнику сказано, що вам потрібно включити mcryptі mbstringphp модулі та перезапустити апаш. Ти це робив?
bistoco

так, я оновив mcrypt і mbstring і перезапустив apache.
цевард

Я рекомендую [завантажити пакет безпосередньо] ( phpmyadmin.net/downloads ), який відповідає вашим версіям php / mysql, для вирішення проблем.
бістоко

Відповіді:


29

Це залежить від того, чи достатньо ви пригодний. Якщо ви розумієте помилку, це означає, що ваш PHP має деякі старі конструктори класу.

Старий конструктор класів Php

Class myclassname {

    function myclassname() {
      //This is a constructor
    }

Новий конструктор класів Php

Class myclassname {
    function __construct() {
      //this is the new constructor using __construct instead of the same function name as class name.
}

Так що я повинен був піти в /usr/share/php/php-gettext/stream.phpі /usr/share/php/php-gettext/gettext.php(або будь-який інший файл вказано у вашій помилки), перейдіть до файлу та зміни function myclassname()до function __construct.

Функція myclassnameповинна бути ідентичною myclassnameдекларації CLASS .

Якщо ви перебуваєте на ubuntu 16.04 з останнім gettext, ви повинні побачити приблизно 4 помилки. Я просто змінюю це, і це не шкідливо для вашої системи. Це застарілий синтаксис програмування, і якщо ви оновите в майбутньому, ви також не зіткнетеся з жодною проблемою. Я скажу, що це безпечна редакція.

Це насправді не основна зміна чи що-небудь, а лише оновлення синтаксису. Якщо ви встановлюєте з пакету apt-get, у вас дійсно немає іншого вибору, якщо ви не складете самостійно.

sudo nano /usr/share/php/php-gettext/streams.php

Рядок 48 Помилка StringReader.

Перейдіть до рядка 52 та змініться

function StringReader ($str='') {

ДО

function __construct($str='') {

Рядок 84 Помилка FileReader

Перейдіть до рядка 90 та змініться

function FileReader($filename) {

до

function __construct($filename) {

Рядок 145 Помилка CacheFileReader

Перейдіть до рядка 146 та перейдіть

function CachedFileReader($filename) {

до

function __construct($filename) {

Використання sudo nano /usr/share/php/php-gettext/gettext.php.

gettext_reader {Помилка рядка 36

Я думаю, що ви отримаєте суть зараз, перейдіть до рядка 101 та перейдіть

function gettext_reader($Reader, $enable_cache = true) {

До

function __construct($Reader, $enable_cache = true) {

2
слід побачити: sudo nano /usr/share/php/php-gettext/gettext.phpіsudo nano /usr/share/php/php-gettext/streams.php
Technico.top

упаковані файли - з 20101225. Тож хоч зберігання резервних копій - це саме те, що ви робите - завжди - ви повинні бути захищені від оновлення пакета, де виправляєте виправлення, будь-які оновлення повинні містити це виправлення самостійно!
flowtron

8

Оскільки у мене ще недостатньо репутації, щоб коментувати чудову відповідь когось , я просто відповім натомість.

Ось однорядкові команди, які виконують запропоновані зміни:

sed -ri.bak 's: функція StringReader. *: функція __construct ($ str = \ x27 \ x27) {:' /usr/share/php/php-gettext/streams.php
sed -ri 's: функція FileReader. *: функція __construct ($ filename) {:' /usr/share/php/php-gettext/streams.php
sed -ri 's: функція CachedFileReader. *: функція __construct ($ filename) {:' /usr/share/php/php-gettext/streams.php
sed -ri.bak 's: функція gettext_reader. *: функція __construct ($ Reader, $ enable_cache = true) {:' /usr/share/php/php-gettext/gettext.php

врятував мене трохи часу там ... дякую людині :-)
Адам

5

Ви можете використовувати інший PPA для phpmyadmin. Ось це Посилання PPA

sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt update
sudo apt install phpmyadmin

Оскільки це лише тимчасове рішення чи не оптимальне, поки пакет phpmyadmin у rebubu ubuntu не відбудується.


1
Це мені навіть допомогло
Шашанк Саксена

Будьте уважні, ця програма не отримувала жодного оновлення більше року.
Лоран

0

Повідомлення про депресацію "на сторінці входу проблеми phpMyAdmin легко вирішується шляхом редагування файлу php.ini за адресою /etc/php/7.0/apache2/php.ini

Змініть значення_повідомлення про помилку на:

error_reporting = ~E_DEPRECATED & E_ALL     

За замовчуванням він знаходиться в позиції коментаря, тому коментуйте його та змініть.

Потім перезапустіть Apache:

sudo systemctl restart apache2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.