XREA に pukiwiki を入れて複数の wiki サイトを運営してみる修行
XREA *1 で「小島丈幸.jp」をやっているけど、ずっと中身がなかったので pukiwiki を入れてみることにした。これまで LaCoocan に pukiwiki を入れたり、その pukiwiki をファーストサーバに引っ越したりしてる。
今回もやりたいことはほぼ同じ。
想定
次の二つのサイトを作る。
- 小島丈幸.jp
- ipu.mato.me
便宜上、前者を tk、後者を ipu と呼ぶことにする。
次のようなものができあがるはず。
- エンジン置き場 (ENGINE_DIR) : 共通で使う wiki エンジンを置く場所
- /usr/pukiwiki/
- tk データ置き場 (DATA_HOME): サイト tk のデータとスクリプトを置く非公開な場所
- /var/tk/
- tk 公開ディレクトリ (HTDOCS_DIR) : サイト tk 用のドキュメントルート、もちろん公開
- /public_html/xn--dhqu55a2taf8b.jp/
- ipu データ置き場 (DATA_HOME) : サイト ipu のデータとスクリプトを置く非公開な場所
- /var/ipu/
- ipu 公開ディレクトリ (HTDOCS_DIR): サイト ipu 用のドキュメントルート、もちろん公開
- /public_html/ipu/
サーバ側下準備
XREA の CONTROL PANEL で必要なドメインを作っておく。すると、public_html に該当ディレクトリができる。
たとえば tk に対しては
/public_html/xn--dhqu55a2taf8b.jp/
ができる。これが HTDOCS_DIR になる。
さらに XREA サーバ側に ENGINE_DIR と DATA_HOME に対応するディレクトリを掘っておく (とりあえず ftp クライアントを利用)。
/usr/pukiwiki/ ... ENGINE_DIR /var/tk/ ... tk の DATA_HOME /var/ipu/ ... ipu の DATA_HOME
ローカル下準備
作戦としては、できるだけローカルで準備したうえで ftp する。なので、ダウンロードしてきたアーカイブを展開して org という名前にしておき、インストールディレクトリ構成は pukiwiki ディレクトリの下に作る。
[takeyuki@sunya work]$ tar xvzf ../arc/pukiwiki-1.4.7_notb_utf8.tar.gz [takeyuki@sunya work]$ mv pukiwiki-1.4.7_notb_utf8/ org [takeyuki@sunya work]$ mkdir -p pukiwiki
公開ディレクトリ
まずは index.php を準備する。org からコピーして内容を書き換える。
[takeyuki@sunya work]$ mkdir -p pukiwiki/htdocs/tk [takeyuki@sunya work]$ mkdir -p pukiwiki/htdocs/ipu [takeyuki@sunya work]$ cp org/index.php pukiwiki/htdocs/tk/ [takeyuki@sunya work]$ mv org/index.php pukiwiki/htdocs/ipu/
tk 側で書き換えるポイントは次のとおり。ftp で接続したときのルートディレクトリが php の実行環境では /virtual/ユーザ名/ になっているところに注目。
define('DATA_HOME', '/virtual/unau/var/tk/'); define('ENGINE_DIR', '/virtual/unau/usr/pukiwiki/'); define('LIB_DIR', ENGINE_DIR.'lib/');
ipu 側の index.php は DATA_HOME が違うだけ。
define('DATA_HOME', '/virtual/unau/var/ipu/');
公開ディレクトリには、静的コンテンツもコピーする。
[takeyuki@sunya work]$ cp -pr org/image/ pukiwiki/htdocs/ipu/ [takeyuki@sunya work]$ mv org/image/ pukiwiki/htdocs/tk/
本当は org/skin にも静的コンテンツが含まれる可能性があるんだけど、今はちょっと無視。とりあえずは skin/pukiwiki.css.php だけコピーしておく。
[takeyuki@sunya work]$ mkdir -p pukiwiki/htdocs/ipu/skin/ [takeyuki@sunya work]$ mkdir -p pukiwiki/htdocs/tk/skin/ [takeyuki@sunya work]$ cp org/skin/pukiwiki.css.php pukiwiki/htdocs/ipu/skin/ [takeyuki@sunya work]$ mv org/skin/pukiwiki.css.php pukiwiki/htdocs/tk/skin/
で、pukiwiki/htdocs/tk、pukiwiki/htdocs/ipu をそれぞれサーバ上の /public_html/xn--dhqu55a2taf8b.jp/、/public_html/ipu/ にコピーする。
エンジン置き場
ローカルでは pukiwiki/engine 以下にエンジンを置く。具体的には org/lib/ 以下と org/plugin/ 以下。
[takeyuki@sunya work]$ mkdir -p pukiwiki/engine [takeyuki@sunya work]$ mv org/lib/ org/plugin/ pukiwiki/engine/
これを XREA サーバに /var/pukiwiki として put する。
エンジンは共通なのでこれは一回だけやればよい。
データ置き場
ここから下、まだ書いている途中だけど記事を公開しちゃう修行。
[takeyuki@sunya work]$ mkdir -p pukiwiki/var [takeyuki@sunya work]$ cp -pr org/ pukiwiki/var/ipu [takeyuki@sunya work]$ mv org/ pukiwiki/var/tk
pukiwiki/var/tk/pukiwiki.ini.php の重要な変更点はつぎのとおり。
define('PLUGIN_DIR', ENGINE_DIR . 'plugin/' ); // Plugin directory
...
$modifier = 'Takeyuki Kojima';
...
$modifierlink = 'http://unau.mato.me/';
...
$adminpass = '{x-php-md5}ごにょごにょ';
var/tk/attach, backup, cache, counter, diff, trackback, wiki を chmod og+wx。
pukiwiki/var/tk/skin/pukiwiki.skin.php
<!--nobanner-->
を
タグの前に入れて広告の自動挿入を回避。自分で広告を skin に書き込む。*1:エクスリアと読むのね。いつも全然違う読み方をしちゃってる。なんて読んじゃっているかは秘密。