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
トラックバック  ※トラックバックは承認後に表示されます。
TrackbackURL:このページのトラックバックの受付は終了しています。

トラックバックはありません。
コメント
1
サンクスみつを 19Dec2007 02:10AM
全く同じ現象で悩んでました。
画像はあきらめようかと思ったのですが、
たいへん助かりました。

safe_mode ってくせものですね。
2
そうし 19Dec2007 02:47AM
> みつをさん
はじめましてー。
備忘録として書いてたのですが、お役に立てて光栄です。

safe_modeは通常時と比べある程度セキュアな状態になる代わりに色々と制約が増えるのが難点ですね。
Wikipediaに至ってはsafe_modeのときは完全に外部コマンド周りは処理しないようになってますし。。。
3
MEGU 19Dec2007 11:15AM
こんにちはです。その節は、ありがとうございました。
あの、警告メッセージが画面いっぱいに表示されているのを
見てとても鬱だったのですけけど(笑)、ちゃんとサムネイルに
なってくれたのをみて感動しました。^^。

また何かあったらよろしくお願いします。。
(↑予約...? 笑)
4
そうし 22Dec2007 03:15AM
> MEGUさん
いえいえ、更新はMEGUさんにお任せっきりなので、これくらいはやらないと(^^;
いや、本当は全然動かなくて一度諦めそうになったのですが(笑)
ふとしたことで原因がわかって無事に動くようになりました。
また何かありましたらご用命を(笑)
名前:

タイトル:

コメント: