Errore "Avviso di deprecazione" in phpmyadmin con 16.04


11

Ricevo errori quando lancio phpmyadmin in 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)

Continua anche con questi con la stessa backtrace di cui sopra:

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

Ho aggiornato e verificato di essere aggiornato su gettext e mbstring. Qualche idea sulla risoluzione?


In questo tutorial dice che devi abilitare mcrypte mbstringphp i moduli e riavviare apache. Sei stato tu?
bistoco,

sì, ho aggiornato mcrypt e mbstring e ho riavviato apache.
tseward

Consiglierò [scarica direttamente il pacchetto] ( phpmyadmin.net/downloads ) adatto alle tue versioni php / mysql, per risolvere i problemi.
bistoco,

Risposte:


29

Questo dipende se sei abbastanza avventuroso. Se capisci l'errore, significa che il tuo PHP ha alcuni costruttori di vecchia classe.

Costruttore di classe PHD OLD

Class myclassname {

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

Nuovo costruttore di classe Php

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

Quindi quello che ho fatto è stato quello di andare in /usr/share/php/php-gettext/stream.phpe /usr/share/php/php-gettext/gettext.php(o qualsiasi altra cosa il file indicato nel vostro errore), passare al file e cambiare function myclassname()a function __construct.

La funzione myclassnamedovrebbe essere identica alla myclassnamedichiarazione CLASS .

Dovresti vedere circa 4 errori se sei su Ubuntu 16.04 con l'ultimo gettext. Lo cambio e non è dannoso per il tuo sistema. È una sintassi obsoleta di programmazione e se esegui l'aggiornamento in futuro non dovresti affrontare alcun problema. Dirò che è una modifica sicura.

Non è davvero un grande cambiamento o altro, solo l'aggiornamento della sintassi. Se installi dal pacchetto apt-get, non hai altra scelta se non compilare te stesso.

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

Riga 48 Errore StringReader.

Vai alla riga 52 e cambia

function StringReader ($str='') {

PER

function __construct($str='') {

Riga 84 Errore FileReader

Vai alla linea 90 e cambia

function FileReader($filename) {

per

function __construct($filename) {

Riga 145 Errore CacheFileReader

Vai alla riga 146 e modifica

function CachedFileReader($filename) {

per

function __construct($filename) {

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

gettext_reader {Errore linea 36

Penso che tu abbia capito subito, vai alla riga 101 e cambia

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

Per

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

2
si dovrebbe vedere: sudo nano /usr/share/php/php-gettext/gettext.phpesudo nano /usr/share/php/php-gettext/streams.php
Technico.top

i file compressi provengono da 20101225. Quindi, anche se mantenere i backup è esattamente ciò che fai - sempre - dovresti essere al sicuro da un aggiornamento del pacchetto che non risolve la tua correzione, tutti gli aggiornamenti dovrebbero contenere quella correzione da soli!
Flowtron,

8

Dato che non ho ancora abbastanza reputazione per commentare la grande risposta di Someone Special , risponderò invece.

Ecco i comandi a una riga che eseguono le modifiche suggerite:

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

mi ha fatto risparmiare un po 'di tempo lì ... grazie amico :-)
Adam,

5

Puoi usare un altro PPA per phpmyadmin. Qui è PPA Link

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

Dato che è solo una soluzione temporanea o non ottimale, fino a quando il pacchetto di phpmyadmin nei repository di Ubuntu non viene ricostruito.


1
Questo mi ha aiutato però
Shashank Saxena,

Fai attenzione, questo ppa non ha ricevuto alcun aggiornamento per più di un anno.
Laurent,

0

Questo messaggio di avviso di deprecazione "nella pagina di accesso del problema phpMyAdmin è facilmente risolto modificando il file php.ini in /etc/php/7.0/apache2/php.ini

Modifica il valore di segnalazione errori in:

error_reporting = ~E_DEPRECATED & E_ALL     

Per impostazione predefinita è nella posizione del commento, quindi decommentalo e modificalo.

Quindi riavviare Apache:

sudo systemctl restart apache2
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.