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';
(エラーレポート送らない!そして二度と聞かないで?であっているのだろうか?)
とりあえず、これで大量のエラーは表示されなくなりました。。。
ただ、本当のエラー原因の解決はほど遠いようです。