Błąd „Powiadomienie o wycofaniu” w phpmyadmin z 16.04


11

Podczas uruchamiania phpmyadmin w 16.04 pojawiają się błędy:

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)

Kontynuuje również te z tym samym śladem wstecznym jak powyżej:

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

Zaktualizowałem i zweryfikowałem, że korzystam z najnowszego gettext i mbstring. Masz jakieś przemyślenia na temat rozwiązania?


Na tym kursie jest napisane, że trzeba włączyć mcrypti mbstringmoduły php i restart apache. Czy ty to zrobiłeś?
bistoco,

tak, zaktualizowałem mcrypt i mbstring i zrestartowałem apache.
trzydziesty

Polecę [pobierz pakiet bezpośrednio] ( phpmyadmin.net/downloads ), który pasuje do twoich wersji php / mysql, do rozwiązywania problemów.
bistoco

Odpowiedzi:


29

To zależy od tego, czy jesteś wystarczająco ryzykowny. Jeśli rozumiesz błąd, oznacza to, że twój PHP ma jakieś stare konstruktory klas.

Stary konstruktor klasy php

Class myclassname {

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

Nowy konstruktor klasy php

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

Więc co zrobiłem było iść do /usr/share/php/php-gettext/stream.phpi /usr/share/php/php-gettext/gettext.php(lub cokolwiek plik podano w błąd), przejdź do pliku i zmiany function myclassname()do function __construct.

Funkcja myclassnamepowinna być identyczna z myclassnamedeklaracją KLASY .

Powinieneś zobaczyć około 4 błędów, jeśli jesteś na Ubuntu 16.04 z najnowszym gettext. Po prostu to zmieniam i nie jest to szkodliwe dla twojego systemu. Jest to przestarzała składnia programowania, a jeśli dokonasz aktualizacji w przyszłości, nie napotkasz również żadnego problemu. Powiem, że to bezpieczna edycja.

To nie jest tak naprawdę poważna zmiana ani nic, tylko aktualizacja składni. Jeśli instalujesz z pakietu apt-get, tak naprawdę nie masz innego wyjścia, chyba że sam się skompilujesz.

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

Błąd czytnika linii 48.

Przejdź do linii 52 i zmień

function StringReader ($str='') {

DO

function __construct($str='') {

Błąd 84 czytnika plików

Przejdź do linii 90 i zmień

function FileReader($filename) {

do

function __construct($filename) {

Błąd CacheFileReader linii 145

Idź do linii 146 i zmień

function CachedFileReader($filename) {

do

function __construct($filename) {

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

gettext_reader {Błąd linii 36

Myślę, że teraz rozumiesz, przejdź do linii 101 i zmień

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

Do

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

2
należy zobaczyć: sudo nano /usr/share/php/php-gettext/gettext.phpisudo nano /usr/share/php/php-gettext/streams.php
Technico.top,

spakowane pliki pochodzą z 20101225. Tak więc chociaż tworzenie kopii zapasowych jest po prostu tym, co robisz - zawsze - powinieneś być bezpieczny przed aktualizacją pakietu po usunięciu poprawki, wszelkie aktualizacje powinny same ją zawierać!
flowtron

8

Ponieważ nie mam jeszcze wystarczającej reputacji, aby skomentować świetną odpowiedź Someone Special , po prostu odpowiem.

Oto polecenia jednowierszowe, które wykonują sugerowane zmiany:

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

zaoszczędził mi tam trochę czasu ... dzięki stary :-)
Adam

5

Możesz użyć innego PPA dla phpmyadmin.Oto link PPA

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

Ponieważ jest to tylko rozwiązanie tymczasowe lub nie jest optymalne, do czasu przebudowania pakietu phpmyadmin w repozytoriach ubuntu.


1
To mi jednak pomogło
Shashank Saxena

Uważaj, ten ppa nie otrzymał żadnej aktualizacji przez ponad rok.
Laurent

0

Ten komunikat o wycofaniu ”na stronie logowania do problemu phpMyAdmin można łatwo rozwiązać, edytując plik php.ini pod adresem /etc/php/7.0/apache2/php.ini

Zmień wartość raportowania błędów na:

error_reporting = ~E_DEPRECATED & E_ALL     

Domyślnie jest na pozycji komentarza, więc odkomentuj go i zmień.

Następnie uruchom ponownie Apache:

sudo systemctl restart apache2
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.