web-dev-qa-db-ja.com

Ubuntu 16でphp7.2をアップグレードした後のphpMyAdminエラー(カウント、blowfishな​​ど)

php7.2アップグレード後のphpMyAdminエラー

Ubuntu 16.04 LTSでphp7.2にアップグレードした後、テーブルを表示すると、phpMyAdminに迷惑なポップアップ警告が表示されます。

「サーバーでいくつかのエラーが検出されました。このウィンドウの下部をご覧ください。すべて無視します。無視します。」

ウィンドウの下部:

"警告 ./libraries/sql.lib.php#601

count():パラメータはCountableを実装する配列またはオブジェクトである必要があります "

...その後に長いバックトレースリストが続きます。

この問題は、4.5.4以下を含むさまざまなphpMyAdmin4.xバージョンで発生します。

これを修正するにはどうすればよいですか?


更新-Blowfishエラー

最新バージョンのphpMyAdmin(4.7.9)にアップグレードした後、すべてのページの下部に表示される新しいエラーが表示されます。

「構成ファイルに秘密のパスフレーズ(blowfish_secret)が必要になりました。」

これを修正するにはどうすればよいですか?

7
Justin

UbuntuでphpMyAdminを手動で更新する

これを書いている時点で、Ubuntuで利用可能なphpMyAdminバージョン パッケージマネージャー (4.5.4)はphp7.2を完全にはサポートしていないため、count()の警告が表示されます。 解決策は、最新のphpMyAdminバージョンに更新することです。これは執筆時点では4.7.9です。

Ubuntuパッケージは遅れています。 phpMyAdmin PPA がありますが、それも遅れています:

「注:このリポジトリは、4.7シリーズに更新する時間を見つけるのに苦労しているため、現在少し遅れています。」

幸い、古いバージョンから手動でアップグレードできます。

基本的な手順は次のとおりです:

  1. 現在のインストールのバックアップコピーを作成します
  2. PhpMyAdminの最新バージョンをダウンロードして抽出します
  3. Vendor_config.phpファイルをUbuntuの適切なディレクトリに変更します
  4. より長いランダムな文字列を追加して、blowfishエラーメッセージを解決し、適切なCookie認証を可能にします

これらの端末コマンドで作業を完了できます(該当する場合は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を使用すると、おそらくフグエラーが発生します。これを解決するには、特定の構成ファイルを更新する必要があります。

  1. _vendor_config.php_で_/usr/share/phpmyadmin/libraries/vendor_config.php_を開きます
  2. 38行目またはその周辺で、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構成文字列に長さを追加する必要がある場合があります

  1. ファイル_/var/lib/phpmyadmin/blowfish_secret.inc.php_を開きます。

君は見るべきだ:

_<?php
$cfg['blowfish_secret'] = 'Something Short';
_
  1. _$cfg['blowfish_secret']_文字列にランダム性を追加します。少なくとも40文字以上の方がよい場合があります(100文字の文字列を使用します)。

例(これは使用しないでください。単なる例です):

_$cfg['blowfish_secret'] = 'A much longer random string 7NfSjYezwmwGCfGDuDO7uWn4ESw2sCFCym1RatPjGCfGCym1RatPjGCfG';
_
  1. ファイルを保存します。

この時点で、(ブラウザーで)phpMyAdminを更新し、再度ログインします。これですべてが正しく機能するはずです。

必要に応じて、次の方法で古いphpMyAdminバージョンのバックアップコピーを削除できます。

_rm -rfv /usr/share/phpmyadmin_old
_

追加のドキュメント

参考までに、以下は、最新バージョンへの手動更新に関する 公式のphpMyAdminドキュメント からの抜粋です(これはnotUbuntu固有です):

警告

PhpMyAdminの既存のインストールから新しいバージョンを抽出しないでください。常に、構成のみを保持して古いファイルを最初に削除してください。

このようにして、古い機能しなくなったコードをディレクトリに残さないようにします。これにより、セキュリティに深刻な影響を及ぼしたり、さまざまな破損を引き起こしたりする可能性があります。

そして:

完全なアップグレードは、いくつかの簡単な手順で実行できます。

  1. https://www.phpmyadmin.net/downloads/ から最新のphpMyAdminバージョンをダウンロードします。

  2. 既存のphpMyAdminフォルダーの名前を変更します(たとえば、phpmyadmin-oldに変更します)。

  3. 新しくダウンロードしたphpMyAdminを目的の場所(たとえばphpmyadmin)に解凍します。

  4. Config.inc.php`を古い場所(phpmyadmin-old)から新しい場所(phpmyadmin)にコピーします。

  5. すべてが正しく機能することをテストします。

  6. 以前のバージョン(phpmyadmin-old)のバックアップを削除します。

16
Justin

エラーを修正する他のオプションは、ubuntuがphpmyadminのバージョンに追いつくまで、phpをバージョン7.1に一時的にダウングレードすることです。指示 ここ 。私はこれがより簡単であることに気づきました、そしてとにかくphpの最先端にいる理由はありません。

0
twowheeler