Ubuntu 16.04 – phpmyadmin Deprecation Notice with PHP 7
這個問題之前小蛙第一次升級到 PHP 7 之後發生過一次,進到 phpmyadmin 的登入介面,就噴出一大堆錯誤警告訊息,看到這心都涼了,又有事情要忙了。
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)
但實際上處理這問題並不難,大概 Google 了一下得到兩種答案,參考資料1 有完整 Stack Overflow 討論串,小蛙這邊自己備存:
重新安裝新版 phpmyadmin
小蛙第一次為了減少麻煩,直接使用這個方法 (參1)
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
這個方法要注意安裝 phpmyadmin 的時候,會提示詢問是否要重新設定 phpmyadmin,小蛙這邊是選不要,因為小蛙想保留原始的 phpmyadmin 設定,這是特別要注意的。
修正出錯的檔案
這個方法直接把出錯的兩支檔案抓出來修改,修改的內容分別如下:
修改 streams.php 檔案
vim /usr/share/php/php-gettext/streams.php
做以下修改
// 找到 function StringReader ($str='') { // 修改成 function __construct($str='') { // 找到 function FileReader($filename) { // 修改成 function __construct($filename) { // 找到 function CachedFileReader($filename) { // 修改成 function __construct($filename) {
修改 gettext.php 檔案
vim sudo nano /usr/share/php/php-gettext/gettext.php
做以下修改
// 找到 function gettext_reader($Reader, $enable_cache = true) { // 修改成 function __construct($Reader, $enable_cache = true) {