Ubuntu 16.04 LTSでphp7.2にアップグレードした後、テーブルを表示すると、phpMyAdminに迷惑なポップアップ警告が表示されます。
「サーバーでいくつかのエラーが検出されました。このウィンドウの下部をご覧ください。すべて無視します。無視します。」
ウィンドウの下部:
"警告 ./libraries/sql.lib.php#601
count():パラメータはCountableを実装する配列またはオブジェクトである必要があります "
...その後に長いバックトレースリストが続きます。
この問題は、4.5.4以下を含むさまざまなphpMyAdmin4.xバージョンで発生します。
これを修正するにはどうすればよいですか?
最新バージョンのphpMyAdmin(4.7.9)にアップグレードした後、すべてのページの下部に表示される新しいエラーが表示されます。
「構成ファイルに秘密のパスフレーズ(blowfish_secret)が必要になりました。」
これを修正するにはどうすればよいですか?
これを書いている時点で、Ubuntuで利用可能なphpMyAdminバージョン パッケージマネージャー (4.5.4)はphp7.2を完全にはサポートしていないため、count()の警告が表示されます。 解決策は、最新のphpMyAdminバージョンに更新することです。これは執筆時点では4.7.9です。
Ubuntuパッケージは遅れています。 phpMyAdmin PPA がありますが、それも遅れています:
「注:このリポジトリは、4.7シリーズに更新する時間を見つけるのに苦労しているため、現在少し遅れています。」
幸い、古いバージョンから手動でアップグレードできます。
基本的な手順は次のとおりです:
これらの端末コマンドで作業を完了できます(該当する場合はSudoを使用してください)。
_mv /usr/share/phpmyadmin /usr/share/phpmyadmin_old
mkdir /usr/share/phpmyadmin
mkdir /var/downloads
cd /var/downloads
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.9/phpMyAdmin-4.7.9-all-languages.tar.gz
tar -xf phpMyAdmin-4.7.9-all-languages.tar.gz -C /usr/share/phpmyadmin --strip-components=1
_
(オプション)wget行を最新バージョンまたは選択した優先フォーマットに置き換えます。 https://www.phpmyadmin.net/downloads/ にアクセスしてください。
この時点で、phpMyAdminを使用すると、おそらくフグエラーが発生します。これを解決するには、特定の構成ファイルを更新する必要があります。
vendor_config.php
_で_/usr/share/phpmyadmin/libraries/vendor_config.php
_を開きますdefine('CONFIG_DIR', '');
をdefine('CONFIG_DIR', '/etc/phpmyadmin/');
に置き換え、ファイルを保存します。完了すると、_vendor_config.php
_の33〜38行目は次のようになります。
_/**
* Directory where configuration files are stored.
* It is not used directly in code, just a convenient
* define used further in this file.
*/
define('CONFIG_DIR', '/etc/phpmyadmin/');
_
この時点で、phpMyAdminはエラーなしで動作する可能性がありますが、blowfish_secret構成文字列に長さを追加する必要がある場合があります。
/var/lib/phpmyadmin/blowfish_secret.inc.php
_を開きます。君は見るべきだ:
_<?php
$cfg['blowfish_secret'] = 'Something Short';
_
$cfg['blowfish_secret']
_文字列にランダム性を追加します。少なくとも40文字以上の方がよい場合があります(100文字の文字列を使用します)。例(これは使用しないでください。単なる例です):
_$cfg['blowfish_secret'] = 'A much longer random string 7NfSjYezwmwGCfGDuDO7uWn4ESw2sCFCym1RatPjGCfGCym1RatPjGCfG';
_
この時点で、(ブラウザーで)phpMyAdminを更新し、再度ログインします。これですべてが正しく機能するはずです。
必要に応じて、次の方法で古いphpMyAdminバージョンのバックアップコピーを削除できます。
_rm -rfv /usr/share/phpmyadmin_old
_
追加のドキュメント
参考までに、以下は、最新バージョンへの手動更新に関する 公式のphpMyAdminドキュメント からの抜粋です(これはnotUbuntu固有です):
警告
PhpMyAdminの既存のインストールから新しいバージョンを抽出しないでください。常に、構成のみを保持して古いファイルを最初に削除してください。
このようにして、古い機能しなくなったコードをディレクトリに残さないようにします。これにより、セキュリティに深刻な影響を及ぼしたり、さまざまな破損を引き起こしたりする可能性があります。
そして:
完全なアップグレードは、いくつかの簡単な手順で実行できます。
https://www.phpmyadmin.net/downloads/ から最新のphpMyAdminバージョンをダウンロードします。
既存のphpMyAdminフォルダーの名前を変更します(たとえば、phpmyadmin-oldに変更します)。
新しくダウンロードしたphpMyAdminを目的の場所(たとえばphpmyadmin)に解凍します。
Config.inc.php`を古い場所(phpmyadmin-old)から新しい場所(phpmyadmin)にコピーします。
すべてが正しく機能することをテストします。
以前のバージョン(phpmyadmin-old)のバックアップを削除します。
エラーを修正する他のオプションは、ubuntuがphpmyadminのバージョンに追いつくまで、phpをバージョン7.1に一時的にダウングレードすることです。指示 ここ 。私はこれがより簡単であることに気づきました、そしてとにかくphpの最先端にいる理由はありません。