web-dev-qa-db-fra.com

PHP 7 avec phpmyadmin donne beaucoup d'avis de déprécation

J'ai buntu 16.04 LTS fonctionne avec PHP7 et phpmyadmin est installé. Cependant, je reçois beaucoup d'avis de dépréciation tels que:

Deprecation Notice in ./../php/php-gettext/streams.php#48  
Methods with the same name as their class will not be constructors in a future version of PHP; StringReader has a deprecated constructor

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)

Est-ce un problème? Comment puis-je me débarrasser de ces avis (ils apparaissent chaque fois qu'une page est chargée ou qu'une action est effectuée)?

56
yoano

J'ai eu ce problème et résolu avec une simple réinstallation de phpmyadmin et ses dépendances. Exécutez les commandes suivantes:

Sudo apt-get remove --purge phpmyadmin php-gettext php-mbstring -y
Sudo apt-get autoremove -y
Sudo apt-get update
Sudo apt-get install phpmyadmin php-gettext php-mbstring -y

Une fois réinstallé, vous devriez être comme neuf!

107
David Curry

La façon dont j'ai résolu ce problème était de suivre les instructions de askubuntu à erreur de notification d'amortissement dans phpmyadmin avec 16.04 . Cela implique de changer trois lignes dans /usr/share/php/php-gettext/streams.php et une ligne dans /usr/share/php/php-gettext/gettext.php.

A partir de ce lien, voici les changements que vous devez faire (si vous avez Ubuntu 16.04):

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

Erreur de ligne 48 StringReader.

Aller à la ligne 52 et changer

function StringReader ($str='') {

À

function __construct($str='') {

Erreur ligne 84 FileReader

Aller à la ligne 90 et changer

function FileReader($filename) {

à

function __construct($filename) {

Erreur ligne 145 CacheFileReader

Aller à la ligne 146 et changer

function CachedFileReader($filename) {

à

function __construct($filename) {

En utilisant Sudo nano /usr/share/php/php-gettext/gettext.php.

Ligne 36 gettext_reader {error

Je pense que vous obtenez le Gist maintenant, allez à la ligne 101 et changez

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

À

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

Vous pouvez utiliser un autre PPA pour phpmyadmin.Le voici Lien PPA

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 phpmyadmin dans les dépôts Ubuntu soit reconstruit.

40
Deepanshu Jain

Vous devriez essayer dans votre php.ini de définir error_reporting = ~ E_DEPRECATED, cela supprimera les erreurs de dépréciation. Il devrait être semblable à error_reporting = ~E_DEPRECATED & E_ALL. S'il vous plaît laissez-moi savoir si cela fonctionne.

24
beniaminp

Cher @BeniaminPantiru, votre réponse est correcte mais votre solution ne résout pas le problème car vous dites à Apache de ne pas afficher les erreurs de dépréciation plutôt que de les corriger. mais nous pouvons facilement corriger cette erreur en mettant à niveau les mises à jour de sécurité et les packages nécessaires. tapez la commande suivante va résoudre le problème.

Sudo apt-get dist-upgrade
16
Mohamed Haseem

Vous n'avez pas mentionné la version de phpMyAdmin que vous utilisez ou à partir de laquelle il a été installé, mais il semble s'agir de la version packagée Ubuntu 4.5.4.1 ou d'une version d'origine plutôt ancienne et non prise en charge. Quoi qu'il en soit, je pense que votre problème a été signalé (et corrigé) à https://github.com/phpmyadmin/phpmyadmin/issues/11462 - si vous utilisez la version empaquetée d'Ubuntu, les commentaires il suggère que la version PPA de Nijel devrait mieux fonctionner pour vous.

Bien sûr, la réponse acceptée par Beniamin Pantiru est bonne aussi, et si vous utilisez un serveur de production, vous devez réduire le nombre d'avertissements et d'erreurs affichés par PHP de toute façon, comme meilleure pratique standard.

5
Isaac Bennetch

J'avais corrigé en réglant le rapport d'erreur au suivant dans le chemin du fichier php.ini /etc/php/7.0

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

Valeurs communes:

 E_ALL (Show all errors, warnings and notices including coding standards.)

 E_ALL & ~E_NOTICE  (Show all errors, except for notices)

 E_ALL & ~E_NOTICE & ~E_STRICT  (Show all errors, except for notices and coding standards warnings.)

 E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)

 Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
3
Ranjithkumar MV

La mise à jour du serveur a fonctionné pour moi avec Sudo apt-get dist-upgrade puis le redémarrage d'Apache.

Je pense que ce problème est dû au fait que phpmyadmin n'est pas mis à jour assez souvent.

2
Trey Tyler

J'ai eu le même problème. Je voulais juste mentionner cela avant de purger phpmyadmin et de le réinstaller. Essayez de redémarrer Apache. Dans mon cas, c'était l'approche la plus simple et je l'ai d'abord essayée. Je voulais juste que les gens gagnent du temps.

 Sudo service Apache2 restart
2
Mycodingproject

Jusqu'à ce que cela soit résolu dans la dépendance elle-même (dans votre cas, php-gettext) et que vous ne souhaitiez pas modifier les paramètres globaux PHP afin que vos autres éléments ne soient pas affectés, vous souhaiterez peut-être essayer de il suffit de personnaliser index.php de PHPMyadmin en mettant

error_reporting( ~E_DEPRECATED & E_ALL );

quelque part au début ou en utilisant

php_value error_reporting 24575

dans la directive de configuration .htdocs ou de l'hôte virtuel. Je pense que la dernière option est meilleure.

2
Wojciech Fornal

Le problème est dû à une syntaxe obsolète PHP Class Constructor. Pour résoudre ce problème, exécutez le code suivant sur votre terminal:

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
1
John Collins

Un problème survient en cas de disparité entre la version originale de PHP que vous utilisiez précédemment et la version actuelle de votre PHP. Selon votre version installée PHP version, cela devrait suffire.

Sudo apt-get update
Sudo apt-get install phpmyadmin php7.0-gettext php7.0-mbstring -y
0
Chibueze Opata

Message "Avis de dépréciation" sur la page de connexion de phpMyAdmin

Ok, ce problème a été résolu facilement avec la modification du fichier php.ini:

chemin du fichier: /etc/php/7.0/Apache2/php.ini

Remplacez la valeur error_reporting par:

CODE: SELECT ALL

error_reporting = ~E_DEPRECATED & E_ALL.   

Par défaut, il est en position de commentaire, alors décommentez-le et changez-le.

Puis redémarrez Apache:

# systemctl restart Apache2

OU deuxième solution

apt-get purge phpmyadmin

apt-get install phpmyadmin

SI Nécessite alors Installer

apt-get install php7.0-mbstring

Puis redémarrez Apache:

# systemctl restart Apache2

Eh bien, le message "Avis de dépréciation" ne s'affiche plus.

0
Shrikant Verma

J'ai résolu ce problème différemment en téléchargeant le paquet officiel depuis un Ubuntu plus récent:

https://packages.ubuntu.com/search?keywords=phpmyadmin

Et puis installé le:

Sudo dpkg -i phpmyadmin_4.6.6-5_all.deb

Ainsi, il n'est pas nécessaire d'utiliser des référentiels non officiels et le package sera simplement mis à jour ultérieurement.

0
eitch

Je ne veux pas jouer avec les installations php, donc je viens de redémarrer mon Apache et cela fonctionnait parfaitement pour moi.

"Sudo service Apache2 restart"
0
PrafulPravin