ข้อผิดพลาด“ การเลิกใช้ประกาศ” ใน phpmyadmin กับ 16.04


11

ฉันได้รับข้อผิดพลาดเมื่อฉันเรียกใช้ phpmyadmin ใน 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)

มันยังคงอยู่กับสิ่งเหล่านี้เช่นกันด้วย backtrace เดียวกันดังกล่าวข้างต้น:

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

ฉันได้อัปเดตและตรวจสอบว่าฉันอยู่ใน gettext และ mbstring ล่าสุด ความคิดใด ๆ ในการแก้ไข?


ในการกวดวิชานี้มันบอกว่าคุณต้องเปิดใช้งานmcryptและmbstringโมดูล PHP และเริ่มต้น apache คุณทำเช่นนั้น?
bistoco

ใช่ฉันอัปเดต mcrypt และ mbstring และเริ่ม apache ใหม่
tseward

ฉันจะแนะนำ [ดาวน์โหลดแพ็คเกจโดยตรง] ( phpmyadmin.net/downloads ) ที่เหมาะกับรุ่น php / mysql ของคุณเพื่อแก้ไขปัญหา
bistoco

คำตอบ:


29

ขึ้นอยู่กับว่าคุณผจญภัยมากแค่ไหน หากคุณเข้าใจข้อผิดพลาดนั่นหมายความว่า PHP ของคุณมีตัวสร้างคลาสเก่าบางตัว

ตัวสร้างคลาส Php เก่า

Class myclassname {

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

ตัวสร้างคลาส Php ใหม่

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

ดังนั้นสิ่งที่ฉันไม่ได้ที่จะไปลง/usr/share/php/php-gettext/stream.phpและ/usr/share/php/php-gettext/gettext.php(หรือไฟล์สิ่งที่ระบุไว้ในข้อผิดพลาดของคุณ) ให้ไปที่ไฟล์และการเปลี่ยนแปลงไปfunction myclassname()function __construct

ฟังก์ชั่นmyclassnameควรจะเหมือนกับmyclassnameประกาศCLASS

คุณจะเห็นข้อผิดพลาดประมาณ 4 ข้อถ้าคุณใช้ Ubuntu 16.04 พร้อมกับ gettext ล่าสุด ฉันแค่เปลี่ยนสิ่งนั้นและมันไม่เป็นอันตรายต่อระบบของคุณ มันเป็นไวยากรณ์การเขียนโปรแกรมที่ล้าสมัยและหากคุณอัพเกรดในอนาคตคุณจะไม่ประสบปัญหาใด ๆ ฉันจะบอกว่าเป็นการแก้ไขที่ปลอดภัย

มันไม่ได้เป็นการเปลี่ยนแปลงครั้งใหญ่หรืออะไรเลยเพียงแค่ปรับปรุงไวยากรณ์ ถ้าคุณติดตั้งจาก apt-get package คุณไม่มีทางเลือกอื่นนอกจากคุณจะคอมไพล์ตัวเอง

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

ข้อผิดพลาด StringReader บรรทัดที่ 48

ไปที่ Line 52 และเปลี่ยน

function StringReader ($str='') {

ถึง

function __construct($str='') {

บรรทัดที่ 84 ข้อผิดพลาดของ FileReader

ไปที่ Line 90 และเปลี่ยน

function FileReader($filename) {

ถึง

function __construct($filename) {

ข้อผิดพลาด 145 ของบรรทัด CacheFileReader

ไปที่บรรทัด 146 และเปลี่ยน

function CachedFileReader($filename) {

ถึง

function __construct($filename) {

sudo nano /usr/share/php/php-gettext/gettext.phpการใช้

gettext_reader {ข้อผิดพลาดของบรรทัดที่ 36

ฉันคิดว่าคุณได้รับส่วนสำคัญตอนนี้ไปที่บรรทัดที่ 101 และเปลี่ยน

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

ถึง

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

2
หนึ่งควรดู: sudo nano /usr/share/php/php-gettext/gettext.phpและsudo nano /usr/share/php/php-gettext/streams.php
Technico.top

ไฟล์ที่จัดทำแพคเกจมาจาก 20101225 ดังนั้นแม้ว่าการสำรองข้อมูลเป็นเพียงสิ่งที่คุณทำ - เสมอ - คุณควรจะปลอดภัยจากการอัพเดทแพ็คเกจการแก้ปัญหาของคุณการอัพเดทใด ๆ ควรมีการแก้ไขนั้นด้วยตัวเอง!
flowtron

8

เนื่องจากฉันยังไม่มีชื่อเสียงเพียงพอที่จะแสดงความคิดเห็นในคำตอบที่ดีของบางคนพิเศษฉันก็แค่ตอบแทน

นี่คือคำสั่งหนึ่งบรรทัดที่ดำเนินการแก้ไขที่แนะนำ:

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

ช่วยฉันสักหน่อยที่นั่น ... ขอบคุณผู้ชาย :-)
อดัม

5

คุณสามารถใช้ PPA อื่นสำหรับ phpmyadmin นี่คือPPA Link

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

เนื่องจากเป็นเพียงโซลูชันชั่วคราวหรือไม่ใช่โซลูชันที่ดีที่สุดจนกว่าแพ็คเกจของ phpmyadmin ใน ubuntu repos จะถูกสร้างใหม่


1
สิ่งนี้ช่วยฉันได้
Shashank Saxena

ระวัง ppa นี้ไม่ได้รับการปรับปรุงใด ๆ นานกว่าหนึ่งปี
Laurent

0

ข้อความแจ้งการเลิกใช้นี้ในหน้าเข้าสู่ระบบของปัญหา phpMyAdmin แก้ไขได้อย่างง่ายดายโดยการแก้ไขไฟล์ php.ini ที่ /etc/php/7.0/apache2/php.ini

เปลี่ยนค่า error_reporting เป็น:

error_reporting = ~E_DEPRECATED & E_ALL     

โดยค่าเริ่มต้นมันอยู่ในตำแหน่งความคิดเห็นดังนั้น uncomment มันและเปลี่ยน

จากนั้นรีสตาร์ท Apache:

sudo systemctl restart apache2
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.