個人用のWikiを PukiWiki から MediaWiki に変えようと思い、ひと通り使えるように環境構築した。
CMS だしそんなに手間はかからないだろうと思っていたら、texやエラーで案外手間取ってしまったのでメモ。
- さくらのレンタルサーバ スタンダード
- MediaWiki 1.19.1
- FreeBSD 8.1
- PHP 5.3.14
- MySQL 5.5.15
共用サーバなので、下3つは元々準備済み。PHP のバージョンを変えてる人は再設定する必要がある。 CUI の方法が多く情報として出ているが、初心者なのでなるべく GUI からやってみる。
1.色々とダウンロード
Section titled “1.色々とダウンロード”- MediaWiki 1.19.1
- Extension:MathJax - MediaWiki
- TeXによる数式記述を可能にするプラグイン
2.MySQLのDBを作成
Section titled “2.MySQLのDBを作成”- さくらのサーバコントロールパネル を開き、「データベースの設定」→「データベースの新規作成」
- verionは5.5、データベース名は適当に決め、文字コードはUTF-8を選択しておく。
- サーバ、ユーザ名、パスワード、データベース名は後の手順で使うのでページを開いておくかメモしておく。
3.MediaWiki配置
Section titled “3.MediaWiki配置”先程DLしたMediaWikiのファイル群をサーバ上に置く。 アクセス権は755。userが自分のユーザ名になってるか確認。
基本そのままで大丈夫だが、FTPクライアントによってアクセス権を書き換えられている可能性もあるため、一応確認しておく。 また、私はCoda2を使って解凍済のものをアップロードしたが、その際 maintenance
フォルダ周辺で原因不明のエラーが発生した。 固有の環境問題だと思うが、このフォルダはスキップされていないか特に注意した方がいい。
4. .htaccess
の配置
Section titled “4. .htaccess の配置”現環境だと images
フォルダにアップロードが効かないらしいので .htaccess
でアクセス権を部分的に書き換えたりもにょもにょする。
images
フォルダの中に .htaccess
を新規作成し、その中に以下を書き込む。
<ifModule rewrite_module> RewriteEngine On RewriteCond %{QUERY_STRING} .[^\/:*?x22<>|%]+(#|?|$) [nocase] RewriteRule . - [forbidden]</ifModule>
AllowOverride NoneAddType text/plain .html .htm .shtml .phpphp_admin_flag engine off
5. MediaWikiインストール
Section titled “5. MediaWikiインストール”ブラウザから mw-config/index.php
にアクセスし、インストール作業を行う。
途中データベースのホストと名前を聞かれるので、2.で作ったデータを入力。 データベースの種類はInnoDB,バイナリを選択。「インストールのために同じアカウント…」はチェックを入れる。
ユーザー等の設定項目をひと通り終えたらインストールも可能だが、ここでは念のため更に続行を選択。
後はプラグイン等の設定があるがプラグインに全てチェックを入れておく。使うかもしれないし。 これでインストールを実行する。途中一度だけ止まるがそのまま続行ボタンを押すとインストール完了画面になる。
6.ヘルプファイルのインポート
Section titled “6.ヘルプファイルのインポート”なぜか分からないが、MediaWiki の初期状態ではヘルプファイルが空の状態になっている。 そこで、MediaWiki 公式ページからこれを引っ張って来ることにする。
まず MediaWiki公式のエクスポートページ に行き、四角の大きなテキストボックスに以下を入力後、Exportボタンを押す。
Help:Contents/jaHelp:Navigation/jaHelp:Searching/jaHelp:Tracking_changes/jaHelp:Editing/jaHelp:Editing_pages/jaHelp:Starting_a_new_page/jaHelp:Formatting/jaHelp:Links/jaHelp:Talk_pages/jaHelp:Categories/jaHelp:Images/jaHelp:Subpages/jaHelp:Templates/jaHelp:Tables/jaHelp:Variables/jaHelp:Managing_files/jaHelp:Moving_a_page/jaHelp:Redirects/jaHelp:Deleting_a_page/jaHelp:Preferences/jaHelp:Skins/jaHelp:Namespaces/jaHelp:Range_blocks/jaHelp:Special pages/jaHelp:External searches/jaHelp:Patrolled edits/jaHelp:User_page/jaCategory:Help/jaTemplate:PD_Help_PageTemplate:PDTemplate:MediawikiTemplate:Admin_tip/jaTemplate:Hl2Template:Hl3Template:ThankyouTemplate:LanguagesTemplate:Languages/LangImage:Example.jpgImage:Geographylogo.pngImage:PD-icon.svgImage:PD-Help icon.pngImage:Tools.svgImage:M-en-sidebar.pngImage:M-en-userlinks.pngImage:M-en-pagetabs.pngImage:M-en-recentchanges.pngImage:M-en-interwiki lang.png
xmlファイルが出力されるので、今度はそれを自分のMediaWikiのインポートページからインポートする。 日本語だとURLが変わってしまっているので、Wikiのトップページから「特別ページ」→「ページファイルの取り込み」と進むと見つかるはず。
インポートが完了しても、ヘルプファイルの目次とURLが違うため、表に出てこない。 そこで、Help:Contents/jaページで右上の▼マークから、「移動」→ 新しいページ名に「ヘルプ」(セレクトボックス)と「目次」(フリー入力)と入力し、「ページを移動する」をクリック。 これでツールバーのリンクからヘルプ一覧へアクセスできるようになる。
7.MathJax有効化
Section titled “7.MathJax有効化”wiki
フォルダの中の extensions
にMathJaxを置き、LocalSetting.php
に以下を追記して拡張へのフックをかける。 ついでに MediaWikiの1.19.*だとバグがあるらしいので、キャッシュを無効化して対処する。
$wgParserCacheType = CACHE_NONE;require_once( "$IP/extensions/MathJax/MathJax.php" );
これで数式も表示されるようになった。 ここまで来たら一度MediaWikiのコードにリフレッシュをかけておくと吉。
[root@root]# php /var/www/html/wiki/maintenance/update.php --quick
拡張の紹介ページ に実例が載っているので、適当なページで試してみると良い。
VPSでも同じ作業をした更なる蛇足を書く。
難点があちこちに散らばってて単なる拡張導入のつもりが思わぬ勉強になってしまった。
- CentOS(x86_64) 6.2 @ さくらのVPS(2G)
- Apache 2.2.15
- MediaWiki 1.19.1
- PHP 5.3.14
以下は今からの過程で導入するもの。
- Extension:Math
- Ocaml 3.11.2
- TeX Live 2012
- ImageMagick 6.5.4-7
ここでは、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をインストール
Section titled “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: lEnter letter(s) to select language(s): ABCDEFGHIJKLMNOPSTUVWXYEnter letter(s) to select language(s): rEnter command: i
30分程度放置するとインストールが完了する。 途中ネットワークアクセスが発生するので、別の作業などで帯域を使わないよう注意。ファイル受信が失敗するとインストールが止まってしまう。
Ocaml・ImageMagickをインストール
Section titled “Ocaml・ImageMagickをインストール”Fedora EPEL版のImage Magickはバージョンが少し古い(6.5.4-7)ため、最新版を使いたい場合は公式パッケージ を用いること。
# yum --enablerepo=remi,epel,rpmforge install ocaml imagemagick -y
rootとApacheに環境変数を設定
Section titled “rootとApacheに環境変数を設定”TeXやImageMagickは、動作のためにバイナリフォルダへの環境変数を設定する必要がある。 だが今回はApacheを介してLaTeXを用いるので、rootや他ユーザ(/etc/profileや~/.bash_profile)に環境変数を設定しても
sh: latex: command not found
と返されて実行することができない。 CentOSの場合は、/etc/sysconfig/httpd にApache用の環境変数設定ファイルがあるので、このファイルの末尾に以下をまるっと追加する。
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/texlive/2012/bin/x86_64-linuxMANPATH=/usr/local/texlive/2012/texmf/doc/manINFOPATH=/usr/local/texlive/2012/texmf/doc/infoMAGICK_HOME=/usrLD_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:$PATHexport MANPATH=/usr/local/texlive/2012/texmf/doc/man:$MANPATHexport INFOPATH=/usr/local/texlive/2012/texmf/doc/info:$PATHexport MAGICK_HOME=/usr:$MAGICK_HOMEexport LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH
Extension:Math をインストール
Section titled “Extension:Math をインストール”MediaWikiに Extension:Math を導入する。 ここ から「1.19.x」を選ぶと自動でDLされる。
解凍してSFTP等でサーバに送信しておくか、GUIで取って tar xzf
するかはおまかせ。 いずれも、その後MediaWiki内の /extensions
に格納する。
ディレクトリ構造はこのようになっているはずだ。
texvcをコンパイル
Section titled “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の書き換え
Section titled “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の書き換え
Section titled “extensions/Math/Math.phpの書き換え”$wgTexvc
が初期値だとどうも上手く動かないようなので、先程コピーしたフォルダへの絶対パスに変更する。
/** Location of the texvc binary */$wgTexvc = ''''/usr/local/bin/texvc'''';
imagesフォルダのアクセス権書き換え
Section titled “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>;
Apache、TeX、MediaWiki とそれぞれの箇所でピンポイントな設定が必要なため、3日間くらい苦戦してしまった…。 ネット上の情報も広範囲に散らばったものが多いので、エラーログ、wiki編集中のプレビューで出てくる赤字、pngファイルの生成失敗で出てきた.tex 等…なるべく色々な場所にアンテナを立てながら設定していくことをオススメする。
そしてここまで書いた後に言うのもなんだけど、やっぱWordpressの方が100倍便利。(この記事も元々はMediaWikiで備忘録的に書いたものだった)
wiki より Wordpress の tag の方が探しやすいし、何より MediaWiki は VPS・レンタルサーバだとかなり重い。 極めつけに、今回書いたTeXの環境構築は、wordpressだと JetPack 導入すれば一発で対応できる。
MathJax の美麗な数式でも、LaTeX for Wordpress ならこれも一発だ。
まだ勉強できることが多く、良い経験にはなったものの、複数人で編集しない時にWikiは無粋だなって認識できた3日間だった。