Erreur «Avis de dépréciation» dans phpmyadmin avec 16.04

11

Je reçois des erreurs lorsque je lance phpmyadmin en 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)

Il continue avec ceux-ci avec la même trame que ci-dessus:

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

J'ai mis à jour et vérifié que je suis sur les derniers gettext et mbstring. Des réflexions sur la résolution?

tseward
la source
Sur ce tutoriel , il dit que vous devez activer mcryptet mbstringmodules php et redémarrez apache. As-tu fais ça?
bistoco
oui j'ai mis à jour mcrypt et mbstring et j'ai redémarré apache.
tseward
Je vais recommander [télécharger le package directement] ( phpmyadmin.net/downloads ) qui correspond à vos versions php / mysql, pour dépanner.
bistoco

Réponses:

29

Cela dépend si vous êtes assez aventureux. Si vous comprenez l'erreur, cela signifie que votre PHP a d'anciens constructeurs de classe.

Constructeur OLD Php Class

Class myclassname {

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

Nouveau constructeur de classe Php

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

Donc , ce que je faisais était d'aller dans /usr/share/php/php-gettext/stream.phpet /usr/share/php/php-gettext/gettext.php(ou tout autre fichier indiqué dans votre erreur), allez dans le fichier et le changement function myclassname()à function __construct.

La fonction myclassnamedoit être identique à la myclassnamedéclaration CLASS .

Vous devriez voir environ 4 erreurs si vous êtes sur ubuntu 16.04 avec le dernier gettext. Je change juste cela et ce n'est pas nocif pour votre système. C'est une syntaxe de programmation obsolète et si vous effectuez une mise à niveau à l'avenir, vous ne rencontrerez aucun problème également. Je dirai que c'est un montage sûr.

Ce n'est pas vraiment un changement majeur ou quoi que ce soit, juste une mise à jour de la syntaxe. Si vous installez à partir du package apt-get, vous n'avez vraiment pas d'autre choix que si vous vous compilez vous-même.

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

Erreur du lecteur de chaîne de la ligne 48.

Allez à la ligne 52 et changez

function StringReader ($str='') {

À

function __construct($str='') {

Erreur FileReader de la ligne 84

Allez à la ligne 90 et changez

function FileReader($filename) {

à

function __construct($filename) {

Erreur CacheFileReader de la ligne 145

Allez à la ligne 146 et changez

function CachedFileReader($filename) {

à

function __construct($filename) {

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

gettext_reader {Erreur de ligne 36

Je pense que vous obtenez l'essentiel maintenant, allez à la ligne 101 et changez

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

À

function __construct($Reader, $enable_cache = true) {
Quelqu'un de spécial
la source
2
on devrait voir: sudo nano /usr/share/php/php-gettext/gettext.phpetsudo nano /usr/share/php/php-gettext/streams.php
Technico.top
les fichiers empaquetés datent de 20101225. Ainsi, même si la sauvegarde des sauvegardes est exactement ce que vous faites - toujours - vous devriez être à l'abri d'une mise à jour de package qui ne corrige pas votre correctif, toutes les mises à jour devraient contenir ce correctif par elles-mêmes!
flowtron
8

Comme je n'ai pas encore assez de réputation pour commenter la grande réponse de quelqu'un de spécial , je répondrai simplement à la place.

Voici les commandes d'une ligne qui effectuent les modifications suggérées:

sed -ri.bak: fonction StringReader. *: fonction __construct ($ str = \ x27 \ x27) {: '/usr/share/php/php-gettext/streams.php
sed -ri's: fonction FileReader. *: fonction __construct ($ filename) {: '/usr/share/php/php-gettext/streams.php
sed -ri's: fonction CachedFileReader. *: fonction __construct ($ filename) {: '/usr/share/php/php-gettext/streams.php
sed -ri.bak: fonction gettext_reader. *: fonction __construct ($ Reader, $ enable_cache = true) {: '/usr/share/php/php-gettext/gettext.php
Code binaire
la source
m'a fait gagner un peu de temps là-bas ... merci mec :-)
Adam
5

Vous pouvez utiliser un autre PPA pour phpmyadmin. Ici c'est PPA Link

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

Comme il ne s'agit que d'une solution temporaire ou non optimale, jusqu'à ce que le paquet de phpmyadmin dans les dépôts ubuntu soit reconstruit.

Deepanshu Jain
la source
1
Cela m'a cependant aidé
Shashank Saxena
Attention, ce ppa n'a reçu aucune mise à jour depuis plus d'un an.
Laurent
0

Ce message de notification de dépréciation "sur la page de connexion du problème phpMyAdmin est facilement résolu en modifiant le fichier php.ini à l'adresse /etc/php/7.0/apache2/php.ini

Remplacez la valeur error_reporting par:

error_reporting = ~E_DEPRECATED & E_ALL     

Par défaut, il est sur la position du commentaire, décommentez-le et modifiez-le.

Redémarrez ensuite Apache:

sudo systemctl restart apache2
Shrikant Verma
la source