Abschreibungsbenachrichtigungsfehler in phpmyadmin mit 16.04

11

Ich erhalte Fehler, wenn ich phpmyadmin in 16.04 starte.

Hier sind die Fehler:

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

Ich habe aktualisiert und überprüft, ob ich auf dem neuesten gettext und mbstring bin. Irgendwelche Gedanken zur Lösung

tseward
quelle
In diesem Tutorial heißt es, dass Sie Module aktivieren mcryptund mbstringphp und Apache neu starten müssen. Hast du das gemacht?
Bistoco
Ja, ich habe mcrypt und mbstring aktualisiert und Apache neu gestartet.
Tseward
Ich werde empfehlen, [das Paket direkt herunterzuladen] ( phpmyadmin.net/downloads ), das zu Ihren PHP- / MySQL-Versionen passt, Fehler zu beheben .
Bistoco

Antworten:

29

Dies hängt davon ab, ob Sie abenteuerlustig genug sind. Wenn Sie den Fehler verstehen, bedeutet dies, dass Ihr PHP einige alte Klassenkonstruktoren hat.

ALTER PHP-Klassenkonstruktor

Class myclassname {

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

Neuer PHP Class Konstruktor

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

Also , was ich tat , war zu gehen , in /usr/share/php/php-gettext/stream.phpund /usr/share/php/php-gettext/gettext.php(oder was auch immer - Datei in Ihrem Fehler angegeben), gehen Sie auf die Datei und ändern function myclassname()zu function __construct.

Die Funktion myclassnamesollte mit der CLASS- myclassnameDeklaration identisch sein .

Sie sollten ungefähr 4 Fehler sehen, wenn Sie auf Ubuntu 16.04 mit dem neuesten gettext sind. Ich ändere das einfach und es ist nicht schädlich für Ihr System. Es ist eine veraltete Programmiersyntax und wenn Sie in Zukunft ein Upgrade durchführen, werden Sie auch keine Probleme haben. Ich werde sagen, es ist eine sichere Bearbeitung.

Es ist nicht wirklich eine große Änderung oder irgendetwas, nur eine Aktualisierung der Syntax. Wenn Sie von apt-get package installieren, haben Sie wirklich keine andere Wahl, als wenn Sie sich selbst kompilieren.

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

Zeile 48 StringReader-Fehler.

Gehen Sie zu Zeile 52 und wechseln Sie

function StringReader ($str='') {

ZU

function __construct($str='') {

Zeile 84 FileReader-Fehler

Gehen Sie zu Zeile 90 und wechseln Sie

function FileReader($filename) {

zu

function __construct($filename) {

Zeile 145 CacheFileReader-Fehler

Gehen Sie zu Zeile 146 und wechseln Sie

function CachedFileReader($filename) {

zu

function __construct($filename) {

Verwenden von sudo nano /usr/share/php/php-gettext/gettext.php.

Zeile 36 gettext_reader {Fehler

Ich denke, Sie verstehen jetzt das Wesentliche, gehen Sie zu Zeile 101 und wechseln Sie

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

Zu

function __construct($Reader, $enable_cache = true) {
Jemand Besonderes
quelle
2
man sollte sehen: sudo nano /usr/share/php/php-gettext/gettext.phpundsudo nano /usr/share/php/php-gettext/streams.php
Technico.top
Die gepackten Dateien stammen aus dem Jahr 20101225. Auch wenn das Sichern von Backups genau das ist, was Sie tun - immer -, sollten Sie vor einem Paket-Update geschützt sein, bei dem Ihr Fix nicht behoben wird. Alle Updates sollten diesen Fix selbst enthalten!
Flowtron
8

Da ich noch nicht genug Ruf habe, um die großartige Antwort von Someone Special zu kommentieren, antworte ich stattdessen einfach.

Hier sind die einzeiligen Befehle, die die vorgeschlagenen Änderungen ausführen:

sed -ri.baks: Funktion StringReader. *: Funktion __construct ($ str = \ x27 \ x27) {: '/usr/share/php/php-gettext/streams.php
sed -ri 's: Funktion FileReader. *: Funktion __construct ($ filename) {:' /usr/share/php/php-gettext/streams.php
sed -ri 's: Funktion CachedFileReader. *: Funktion __construct ($ filename) {:' /usr/share/php/php-gettext/streams.php
sed -ri.baks ': Funktion gettext_reader. *: Funktion __construct ($ Reader, $ enable_cache = true) {:' /usr/share/php/php-gettext/gettext.php
Binärcode
quelle
hat mir dort ein bisschen Zeit gespart ... danke Mann :-)
Adam
5

Sie können ein anderes PPA für phpmyadmin verwenden. Hier ist es PPA Link

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

Da es sich nur um eine vorübergehende oder keine optimale Lösung handelt, wird das Paket von phpmyadmin in Ubuntu-Repos neu erstellt.

Deepanshu Jain
quelle
1
Dies half mir jedoch
Shashank Saxena
Seien Sie vorsichtig, dieser ppa hat seit mehr als einem Jahr kein Update mehr erhalten.
Laurent
0

Diese Meldung "Verfallserklärung" auf der Anmeldeseite des Problems "phpMyAdmin" kann leicht durch Bearbeiten der Datei "php.ini" unter behoben werden /etc/php/7.0/apache2/php.ini

Ändern Sie den Wert für error_reporting in:

error_reporting = ~E_DEPRECATED & E_ALL     

Standardmäßig befindet es sich in der Kommentarposition. Kommentieren Sie es aus und ändern Sie es.

Starten Sie dann Apache neu:

sudo systemctl restart apache2
Shrikant Verma
quelle