読者です 読者をやめる 読者になる 読者になる

leglog

雑記にも満たない

さくらのVPS上のMediaWikiにExtension:Math導入のまとめ

さくらのレンタルサーバにMediaWikiを導入のまとめをやった際にVPSでも同じ作業をした更なる蛇足エントリ。
難点があちこちに散らばってて単なる拡張導入のつもりが思わぬ勉強になってしまった。

環境

以下は今からの過程で導入するもの。

ここでは、MediaWikiを /var/www/html/wiki に導入し、URLから見れるところまで完了した、という前提で解説する。

下準備

yum 多用するので、Fedora EPEL,remi,rpmforgeリポジトリを過去に追加していない場合は以下を実行して全部追加しておく。

$ su
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uvh epel-release-6-7.noarch.rpm remi-release-6.rpm rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

更に、TeXのインストールにはX Window SystemとDesktopのインストールが必要なので、こちらも追加していなければ追加する。

# yum groupinstall "X Window System" "Desktop"

作業手順

TeX Live 2012をインストール

$ wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
$ tar xzf install-tl-unx.tar.gz
$ install-tl-YYYYMMDD
$ ./install-tl

以降は対話形式のインストール画面になる。
各言語のドキュメントを対象外にすると200MB程度の容量削減になるのでやっておく。

Enter command: l
Enter letter(s) to select language(s): ABCDEFGHIJKLMNOPSTUVWXY
Enter letter(s) to select language(s): r
Enter command: i

30分程度放置するとインストールが完了する。
途中ネットワークアクセスが発生するので、別の作業などで帯域を使わないよう注意。ファイル受信が失敗するとインストールが止まってしまう。

OcamlImageMagickをインストール

Fedora EPEL版のImage Magickはバージョンが少し古い(6.5.4-7)ため、最新版を使いたい場合は公式パッケージを用いること。

# yum --enablerepo=remi,epel,rpmforge install ocaml imagemagick -y

rootとApache環境変数を設定

TeXImageMagickは、動作のためにバイナリフォルダへの環境変数を設定する必要がある。
だが今回はApacheを介してLaTeXを用いるので、rootや他ユーザ(/etc/profileや~/.bash_profile)に環境変数を設定しても

sh: latex: command not found

と返されて実行することができない。
CentOSの場合は、/etc/sysconfig/httpdApache用の環境変数設定ファイルがあるので、このファイルの末尾に以下をまるっと追加する。

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/texlive/2012/bin/x86_64-linux
MANPATH=/usr/local/texlive/2012/texmf/doc/man
INFOPATH=/usr/local/texlive/2012/texmf/doc/info
MAGICK_HOME=/usr
LD_LIBRARY_PATH=/usr/lib64

あまり中身が環境変数のファイルっぽく無いが、これでちゃんと動くのでご心配なく。
念のため、rootでも動くように/etc/profile の分も更新しておく。

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/texlive/2012/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2012/texmf/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2012/texmf/doc/info:$PATH
export MAGICK_HOME=/usr:$MAGICK_HOME
export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH

Extension:Math をインストール

MediaWikiExtension:Mathを導入する。
ここから「1.19.x」を選ぶと自動でDLされる。
解凍してSFTP等でサーバに送信しておくか、GUIで取ってtar xzf するかはおまかせ。
いずれも、その後MediaWiki内の/extensions に格納する。
f:id:Ryo_K:20121230185733p:plain
ディレクトリ構造はこのようになっているはずだ。

texvcをコンパイル

mathフォルダでコンパイルを行うと texvc のバイナリが3つ生成される。(texvc, texvc_test, texvc_tex)

# cd var/www/html/wiki/extensions/Math/math
# make

makeはgmakeでも良いが、Ocamlのインストールが無事に終わっていればどちらでもOK。
これを、先程パスを張った/usr/local/bin にコピー。

# cp texvc /usr/local/bin
# cp texvc_test /usr/local/bin
# cp texvc_tex /usr/local/bin
LocalSetting.phpの書き換え

wikiフォルダの中にある Math.php へのフックを最終行に追記。

require_once( "$IP/extensions/Math/Math.php" );

初期状態のLocalSetting.php に追記するのはこの一行だけで良い。
$wgUseTeX=true; はここで書かなくても良いので、過去に書いていたのなら削除しておくこと。
更に、CentOSを日本語環境で利用している場合は $wgShellLocale の値を書き換えておくのもお忘れなく。

## If you use ImageMagick (or any other shell command) on a
## Linux server, this will need to be set to the name of an
## available UTF-8 locale
$wgShellLocale = '''"ja_JP.UTF-8"''';
extensions/Math/Math.phpの書き換え

$wgTexvc が初期値だとどうも上手く動かないようなので、先程コピーしたフォルダへの絶対パスに変更する。

/** Location of the texvc binary */
$wgTexvc = ''''/usr/local/bin/texvc'''';
imagesフォルダのアクセス権書き換え
# chmod -R 755 /var/www/html/wiki/images

全行程完了

ここまで終わったら、MediaWikiの設定を一度更新させ、CentOS(+Apache)自体も再起動しておく。

# php /var/www/html/wiki/maintenance/update.php --quick
# reboot

これで数式が見れるようになっているはず。試しに以下を入力してみると出力が可能になるはずだ。

<math>\sum_{n=0}^\infty \frac{x^n}{n!}</math>

参考サイト

ApacheTeXMediaWiki とそれぞれの箇所でピンポイントな設定が必要なため、3日間くらい苦戦してしまった…。
ネット上の情報も広範囲に散らばったものが多いので、エラーログ、wiki編集中のプレビューで出てくる赤字、pngファイルの生成失敗で出てきた.tex 等…なるべく色々な場所にアンテナを立てながら設定していくことをオススメする。



そしてここまで書いた後に言うのもなんだけど、やっぱWordpressの方が100倍便利。*1
wikiよりWordpressのtagの方が探しやすいし、何よりMediaWikiはVPS・レンタルサーバだとかなり重い。
極めつけに、今回書いたTeXの環境構築は、wordpressだとJetPack導入すれば一発で対応できる。
MathJaxの美麗な数式でも、LaTeX for Wordpressならこれも一発だ。

まだ勉強できることが多く、良い経験にはなったものの、複数人で編集しない時にWikiは無粋だなって認識できた3日間だった。

*1:この記事も元々はMediaWikiで備忘録的に書いたものだった