MySQL
phpMyadmin
vagrant
homestead

phpMyAdminで急にエラーが出るようになった話

はじめに

使ってるVM(homestead)上で、急にphpMyAdminから count(): Parameter must be an array or an object that implements Countable 的なエラーが出るようになりました。

2018-03-15_16h24_59.png

調べてみたら次のような記事が。

phpmyadmin 4.7.4 is supposed to have "Fixed several compatibility issues with PHP 7.2"
Chances are you have an older version of phpmyadmin.
https://www.phpmyadmin.net/news/2017/8/24/phpmyadmin-474-released/


ガバガバ翻訳:
phpmyadminはPHP7.2との互換性の問題を修正しました
古いバージョンのphpmyadminを使用している可能性があります。

どうやら phpMyAdmin のバージョンが古くなっているのが原因のようです。

アップデート手順

/usr/share/phpmyadmin に元のソースファイルがある前提です。

console
# superuserで入ってアプリケーションの削除
sudo su
apt remove phpymadmin
rm -rf /var/share/phpmyadmin

# 適当にワークディレクトリを作る
cd /var/www/
mkdir tmp
cd tmp

# ソースファイルのダウンロード・解凍
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.9/phpMyAdmin-4.7.9-all-languages.tar.gz
# https://www.phpmyadmin.net/downloads/
tar zxvf phpMyAdmin-4.7.9-all-languages.tar.gz

# 圧縮ファイルの削除・ソースのリネーム
rm phpMyAdmin-4.7.9-all-languages.tar.gz
mv phpMyAdmin-4.7.9-all-languages phpmyadmin

# 元の場所にリプレイス
cp -R phpmyadmin /usr/share/phpmyadmin

# お好みでワークフォルダーを削除する
# cd /
# rm -R /var/www/tmp

# phpMyAdminが使用するテーブルを作成する
# まずはインポート用のsqlファイルがどこにあるか探す
find -name create_tables*
# ./phpmyadmin/sql/create_tables.sql
pwd
# /var/www/tmp

# 実際のインポート作業はMySQL側で行う
mysql

# mySQL側でインポート
source /var/www/tmp/phpmyadmin/sql/create_tables.sql

所感

もう少し分かりやすいエラーを吐いてもバチは当たらないと思う。