Support » Allgemeine Fragen » Überall Deprecated Messages

  • Gelöst Bunnysniper

    (@bunnysniper)


    Hallo,

    ich arbeite seit 2 Tagen mit WP und bin am Verzweifeln, da ich von einem Problem in das nächste stolpere.
    Alle Seiten sind mit der Nachricht „Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /usr/local/www/wordpress/wp-includes/wp-db.php on line 1416“

    überschrieben. Wenn ich das richtig verstanden habe, ist es ein Bug in WP, da es noch uralte und unsicherer MySQL Aufrufe via PHP nutzt. In der PHP.ini habe ich „error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT“ und „display_errors = Off“ gesetzt. In der wp-config.php steht nun
    define( ‚WP_DEBUG‘, false );
    define( ‚WP_DEBUG_DISPLAY‘, false );
    define( ‚WP_DEBUG_LOG‘, false );

    Was nun? Fahre Free BSD 10.1 mit nginx und PHP, MySQL. Alle Sourcen aktuell und selbst kompiliert, nur MySQL 5.6.23 war ein Package

    Gruß, Robin

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Moderator Angelika Reisiger

    (@la-geek)

    Hallo Robin,

    bin ja jetzt keine Expertin, aber versuche mal
    error_reporting(E_ALL ^ E_DEPRECATED);

    Das unterdrückt allerdings nur die Fehler-Anzeige und ist keine dauerhafte Lösung.

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Das ist kein Bug in WP, sondern in einem Plugin oder Theme welches den veralteten Aufruf benutzt. Die Warnung kommt von WP, damit du weißt, dass dieses Problem existiert. Die angegebene Datei ist nur der Ort wo der Fehler auftritt, aber nicht wo der veraltete Aufruf wirklich steht (er tritt nur dort auf, weil da die Themes/Plugins geladen werden).

    Näheres dazu hier:
    https://make.wordpress.org/core/2014/04/07/mysql-in-wordpress-3-9/

    Also entweder Volltextsuche über Themes/Plugins nach dem alten Aufruf oder per Deaktivieren/Aktivieren solange probieren, bis der fehler weg ist und so den Schuldigen suchen.

    Gruß, Torsten

    Bunnysniper

    (@bunnysniper)

    Okay, hier ist die Lösung:

    ich hatte PHP 5.6 aus den Sourcen kompiliert, dann aber zusätzlich die Extensions : php56-xml php56-hash php56-gd php56-curl php56-tokenizer php56-zlib php56-zip als Binärpakete zugefügt, da ich der Anleitung auf:
    https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-nginx-on-a-freebsd-10-1-server

    gefolgt bin (bis auf diesen Punkt IMO die beste Anleitung für FreeBSD + WordPress im Netz). Was da fehlte, war das Paket „php56-mysqli“. Nachdem ich dieses dann installierte, funktionierte alles fhelerfrei.
    In der betreffenden Zeile 1416 ist übrigens ein Catcher drin, der zunächst den sicheren Aufruf via mysqli_connect versucht und dann auf mysql_connect zurückfällt, wenn der erste Aufruf erfolglos ist. Erst dann wird auch die „DEPRECATED“ message generiert.

    Also: das Paket php56-mysqli auf FreeBSD nicht vergessen 🙂

    Moderator Torsten Landsiedel

    (@zodiac1978)

    Klar, wenn das Paket nicht da ist, dann kann es so auch zu dem Fehler kommen. Schön, dass du es so lösen konntest!

    Gruß, Torsten

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „Überall Deprecated Messages“ ist für neue Antworten geschlossen.