かなり既知の事項なので今更ここに書くのも恥ずかしいが、忘れたらイヤなので一応メモ。
PukiWiki(1.47 utf-8版)のパーミッションを設定し、index.phpにアクセスすると何も表示されなくなります。
これだけでは訳が分からないので、index.phpのerror_reportingの引数を"E_ALL"に変更して再読み込みすると、hex2binがredeclareされていることが分かります。
Fatal error: Cannot redeclare hex2bin() in /home/wind/public_html/splunk/lib/func.php on line 323
いろいろググって調べた結果、PHP5.4でhex2binという関数がコア関数として追加されていることが分かりました。
で、lib/func.phpで使用しているので問題になっているようです。
このままでは動かないので、bugtrackingを参考にして修正。
function decode($key)
{
if (function_exists('hex2bin')) {
return hex2bin($key);
}
else {
return internal_hex2bin($key);
}
}
// Inversion of bin2hex()
function internal_hex2bin($hex_string)
{
// preg_match : Avoid warning : pack(): Type H: illegal hex digit ...
// (string) : Always treat as string (not int etc). See BugTrack2/31
return preg_match('/^[0-9a-f]+$/i', $hex_string) ?
pack('H*', (string)$hex_string) : $hex_string;
}
error_reportingの引数を元に戻さないと別のところを引っかけてしまうので注意。
# というか、これだけエラーが出ると、逆にちゃんとfixさせた方がいいんじゃないかと思うが...。
無事に表示されました。