Mediawikiでサムネイル表示 on XREA
先日リニューアルした
MODxのまとめサイト(非公式)はmediawikiを採用して精力的にコンテンツが作られていってます。えっと、僕は全然参加できてません…ほんとすいません。
ただ、ちょっと問題があってmediawikiの画像のサムネイル表示がうまく動かないとMEGUさんから連絡があったので調べることに。結果を先に書くと無事に動くようになりました。というわけでそのときのメモです。
ちなみにサーバはXREAを使ってて、Mediawikiのバージョンは1.11.0です。
まずはこちら
XREAでImageMagickを使ってSVG表示してみる
このページに書いているとおりXREAではphpがSafemodeで動いているので、Mediawikiのサムネイル表示もうまく動いてくれない。
で、このページに対応方法も書いてるし、同じようにソースいじればOKかなぁと思ってやってみたけどうまく動かなかったので、もう少し改造。
[/includes/GlobalFunctions.php]
if( ini_get( 'safe_mode' ) ) {
wfDebug( "wfShellExec can't run in safe_mode, PHP's exec functions are too broken.\n" );
$retval = 1;
return "Unable to run external programs in safe mode.";
}
↓こんな感じに変更
if( ini_get( 'safe_mode' ) ) {
wfDebug( "wfShellExec can't run in safe_mode, PHP's exec functions are too broken.\n" );
$cmd = preg_replace('/2>&1$/','',$cmd);
$cmd = preg_replace('/^\'([^ ]+)\'/','$1',$cmd);
if ( preg_match( '/^\/usr\/local\/php\/bin\/convert/', $cmd ) ) {
wfDebug( "BUT! I'll try it. (;p\n" );
} else {
$retval = 1;
return "Unable to run external programs in safe mode2.$cmd";
}
}
[/LocalSettings.php]
# $wgUseImageMagick = true;
# $wgImageMagickConvertCommand = "/usr/bin/convert";
## If you want to use image uploads under safe mode,
## create the directories images/archive, images/thumb and
## images/temp, and make them all writable. Then uncomment
## this, if it's not already uncommented:
# $wgHashedUploadDirectory = false;
↓こんな感じに変更
$wgUseImageMagick = true;
$wgUseImageResize = true;
$wgImageMagickConvertCommand = "/usr/local/php/bin/convert";
## If you want to use image uploads under safe mode,
## create the directories images/archive, images/thumb and
## images/temp, and make them all writable. Then uncomment
## this, if it's not already uncommented:
$wgHashedUploadDirectory = false;
一応これで動くようになった。
動かなかった原因は2つあって、ひとつはImageMagickのconvertコマンドが何故か「'(シングルコーテーション)」で囲まれていた。
どこで付いたのかはソース追っかけるの大変なので諦めて、このシングルコーテーションを取る処理を追加。
もうひとつはSafemodeが有効なためにexec関数でconvertコマンドを実行する際、勝手にescapeshellcmdが実行されてしまい、convertコマンド末尾に書かれている標準出力の制御「2>&1」が唯の引数になってしまっていた。これは思い切って「2>&1」を削除(いいのか?)。
ついでにconvertコマンドしか実行させないように変更。
にしてもこの微妙な違いはなんだろう?Mediawikiのバージョンが違うのか、XREAの環境がちょっと違うのか…。
作成日:2007/12/05 02:43:12