MediaWiki設定メモ

出典: Wikimura

TeX 数式が表示されない不具合解決

寺倉さんが設定してくれて以来動いていたが、なぜか1ヶ月ほど前から新しい数式が追加できなくなってしまった。 OSのアップデート(CentOS 5.2 から 5.3)をしたのがその時期だとか...

パーミッションの設定やMediaWikiアップデートを試みるも、効果は無かった。

試しに描画済みの数式画像が格納されたディレクトリ「(wiki_dir)/images/math」を削除(実際には名前を変えただけ)してみたところ、 画像が表示されるようになった。

描画がうまくいかないまま保存したページは、一部画像が表示されないままだった。 これについては、記事の「編集」タブを開き、何も編集せずに保存すれば、それまで描画されなかった数式が再描画されるようになる。

もしOSのアップデートなどの後で画像生成が行われなくなったら、その画像が保存されているディレクトリを削除してみるのも手かもしれない。 (もちろんバックアップはとること)


ただ、まだおかしなところがある。複数行の数式を表示するための\begin{align}がうまく動かない。 「構文解析失敗(不明な関数\begin)」というエラーがでてしまう。 MediaWiki1.13から1.15へアップグレードしたが、texvcについては何もしていなかった。もしかしてこれが原因だろうか?

texvcをビルドし直す為にOCamlをインストールする。

サーバがx64系なのでyumからインストールできない...作業用ディレクトリを作って以下のようにインストールをしてみた。 /usr/local 以下にインストールすることにした。

wget http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.1.tar.gz
tar -zvf ocaml-3.11.1.tar.gz
./configure --prefix /usr/local
make world.opt
make install

何事も無く完了。インストール後、texvcをビルドしなおす。

cd (wiki_dir)/math
make

すると「構文解析失敗(不明な関数\begin)」というエラーが解消され、複数行の数式も問題なく表示されるようになった。


\begin{align}
&\mathbf{p}, \mathbf{P} \in \mathcal{P}^2 \\
&\mathbf{P}' = \mathbf{H} \mathbf{p}\\
&\mathbf{P} = \frac{1}{W'}\mathbf{P}'
\end{align}

eAcceleratorで高速化

MediaWikiを1.15.1にアップグレードしたところ、動作が非常に重くなった。 そこで、eAcceleratorというPHP高速化ツールを勝手に導入する。

eAcceleratorのインストールにはphpizeというコマンドが必要[1]なので、yumでphp-devel をインストールする。

eAcceleratorのソースを持ってきたら、phpizeを実行する。これでPHP拡張モジュールができるようになるらしい。続いてmake/make installでインストール完了。 (テストは省略してしまった)

続いて設定。[1]を参考に設定ファイルを追加。 tmpにディレクトリを追加したら、設定完了。

apacheを再起動し、動作を確認。バナーが表示されたので成功したらしい。

yum install php-devel

wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar -xvf eaccelerator-0.9.5.3.tar.bz2

phpize
./configure --prefix=/usr/local
make
make install

cd /etc/php.d
vi eaccelerator.ini 
--------------------------------------------
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
--------------------------------------------

mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

/etc/init.d/httpd restart

php -v
...略
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
バナーが表示されたら完了。


参考文献

  1. 1.0 1.1 eAcceleratorインストール
個人用ツール