error de aviso de depreciación en phpmyadmin con 16.04

11

Recibo errores cuando inicio phpmyadmin en 16.04.

Aquí están los errores:

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)

it continues with these as well with the same backtrace as above:
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

He actualizado y verificado que estoy en el último gettext y mbstring. Alguna idea sobre resolver

tseward
fuente
En este tutorial se dice que tiene que habilitar mcrypty mbstringmódulos php y reiniciar Apache. ¿Hiciste eso?
bistoco
Sí, actualicé mcrypt y mbstring y reinicié Apache.
tseward
Recomendaré [descargue el paquete directamente] ( phpmyadmin.net/downloads ) que se ajuste a sus versiones de php / mysql, para solucionar problemas.
bistoco

Respuestas:

29

Esto depende de si eres lo suficientemente aventurero. Si comprende el error, significa que su PHP tiene algunos constructores de clase antiguos.

OLD Php Class Constructor

Class myclassname {

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

Nuevo Php Class Constructor

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

Entonces, lo que hice fue entrar /usr/share/php/php-gettext/stream.phpy /usr/share/php/php-gettext/gettext.php(o cualquier archivo indicado en su error), ir al archivo y cambiar function myclassname()a function __construct.

La función myclassnamedebe ser idéntica a la myclassnamedeclaración CLASS .

Debería ver aproximadamente 4 errores si está en ubuntu 16.04 con el último gettext. Solo cambio eso y no es dañino para su sistema. Es una sintaxis de programación desactualizada y si realiza una actualización en el futuro, tampoco enfrentaría ningún problema. Diré que es una edición segura.

No es realmente un cambio importante ni nada, solo la actualización de sintaxis. Si instala desde el paquete apt-get, realmente no tiene otra opción a menos que lo compile usted mismo.

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

Error de línea 48 StringReader.

Vaya a la línea 52 y cambie

function StringReader ($str='') {

A

function __construct($str='') {

Error de Line 84 FileReader

Vaya a la línea 90 y cambie

function FileReader($filename) {

a

function __construct($filename) {

Error de línea 145 CacheFileReader

Vaya a la línea 146 y cambie

function CachedFileReader($filename) {

a

function __construct($filename) {

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

gettext_reader {Error de línea 36

Creo que ahora entiendes lo esencial, ve a la línea 101 y cambia

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

A

function __construct($Reader, $enable_cache = true) {
Alguien especial
fuente
2
uno debería ver: sudo nano /usr/share/php/php-gettext/gettext.phpysudo nano /usr/share/php/php-gettext/streams.php
Technico.top
los archivos empaquetados son de 20101225. Por lo tanto, aunque mantener copias de seguridad es exactamente lo que hace, siempre, debe estar a salvo de una actualización de paquete que no repare su arreglo, ¡cualquier actualización debe contener ese arreglo por sí mismo!
flowtron
8

Como todavía no tengo suficiente reputación para comentar sobre la excelente respuesta de Someone Special , solo responderé.

Estos son los comandos de una línea que realizan las ediciones sugeridas:

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 ($ 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 's: function gettext_reader. *: function __construct ($ Reader, $ enable_cache = true) {:' /usr/share/php/php-gettext/gettext.php
Código binario
fuente
me ahorró un poco de tiempo allí ... gracias hombre :-)
Adam
5

Puede usar otro PPA para phpmyadmin. Aquí está el enlace PPA

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

Como es solo una solución temporal o no óptima, hasta que se reconstruya el paquete de phpmyadmin en los repositorios de ubuntu.

Deepanshu Jain
fuente
1
Sin embargo, esto me ayudó
Shashank Saxena
Tenga cuidado, este ppa no ha recibido ninguna actualización durante más de un año.
Laurent
0

Este mensaje de aviso de desaprobación "en la página de inicio de sesión del problema phpMyAdmin se resuelve fácilmente editando el archivo php.ini en /etc/php/7.0/apache2/php.ini

Cambie el valor de error_reporting a:

error_reporting = ~E_DEPRECATED & E_ALL     

Por defecto está en la posición de comentario, así que descomente y cámbielo.

Luego reinicie Apache:

sudo systemctl restart apache2
Shrikant Verma
fuente