システム開発・構築の神様

新しいサービスや技術を使った開発や構築。その他不具合解決など

Windows版PHP(IISサーバー)のPHPMyAdminでエラーが大量に表示される

IISサーバー上に、Windows版PHP環境を導入し、PHPMyAdminをインストールしました。

特に何も設定せず、ログインしてみると大量のエラーが表示されました。

(ログイン画面は正常です)

エラー内容(一部)

サーバー上でいくつかのエラーが検出されました!このウィンドウの一番下を見てください。
Deprecation Notice in .\libraries\phpseclib\Crypt\Base.php#1592
Function mcrypt_list_algorithms() is deprecated
Deprecation Notice in .\libraries\phpseclib\Crypt\Base.php#1592
Function mcrypt_list_algorithms() is deprecated
Internal error in .\libraries\ErrorHandler.php#72
エラーメッセージが多すぎます。いくつかは表示されません。
Backtrace

恐らく認証関係で利用する mcrypt が読み込まれていない?推奨されていない関数が使用されている?ため、エラーになっているのだろう。

そう思って、php.ini の設定を確認してみると

[mcrypt]
; For more information about mcrypt settings see http://php.net/mcrypt-module-open
; Directory where to load mcrypt algorithms
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.algorithms_dir=
; Directory where to load mcrypt modes
; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt)
;mcrypt.modes_dir=

あれ?

他のサイトで紹介されているように

コメントアウトを外すだけでOKなのでは?(最新のPHPから仕様が変わったのかな?)

そのような項目が一切ありません。

自分でmcryptをインストールするのだろうか?

いろいろサイト上に記載されているURLは、サイトにアクセスできない・・・

検索しまくると

windows.php.net – /downloads/pecl/releases/crypto/0.3.1/

のサイトが見つかりました。

ここからダウンロードした php_crypto.dll を C:\php\ext へコピーし、php.ini に追加

そのあとページをリロードすると

やっぱりエラー・・・

phpinfo()で確認すると、どうやら標準でmcrypt が有効になっていました。(最新版のPHPでは標準で有効になっているのでしょうかね)

mcrypt support enabled
mcrypt_filter support enabled
Version 2.5.8
Api No 20021217
Supported ciphers cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour
Supported modes cbc cfb ctr ecb ncfb nofb ofb stream

PHPMyAdmin の config.inc.php の設定が必要なのかな?

$cfg['SendErrorReports'] = 'never';

(エラーレポート送らない!そして二度と聞かないで?であっているのだろうか?)

とりあえず、これで大量のエラーは表示されなくなりました。。。

ただ、本当のエラー原因の解決はほど遠いようです。

関連記事