ぱんだが、自サイトでNamazuを飼った時の記録です。参考になれば幸いです。
以下のような手順でPukiWikiを修正します。
なお、Namazuが動作することを前提にしていますので、適宜インストール/設定を済ませておいてください。
以下のバージョンで動作することを確認しています。
最新のcvs版*1では修正されていますが、念のため。
//** 初期処理 ** $update_exec = ""; ←この行を削除してください。
//$update_exec = ...の行のコメント記号(//)を削除し、以下のように書きます。
$update_exec = '/usr/bin/mknmz -f /etc/namazu/mknmzrc -t text/pukiwiki -O /var/lib/namazu/index/ -L ja -c -K /var/www/wiki/';
それぞれの意味(赤字は環境によって調整してください。)大文字小文字は区別されます。
mknmzの場所を絶対パスで指定します。
設定ファイルの場所を指定します。
メディアタイプを指定することで、pukiwiki.plフィルタ(下記参照)を通すようにする
インデックスの位置
日本語を指定
chasenを使う(kakasiを使う時は-k)
記号を除去
スキャンするディレクトリ
環境によっては省略できるパラメータもありますし、逆にこれでは足りない場合もありますので、その辺は臨機応変にひとつ。 :)
こうしておくと、ページの更新時に一度だけ*2update_execを実行するようになります。
- if($update_exec) + if($update_exec and $dir == DATA_DIR) { system($update_exec." > /dev/null &"); }
環境に応じて適宜修正してください。以下は、PukiWikiを/var/wwwに置いている場合の例です。
Replace /var/www/wiki/ http://.../pukiwiki.php?
検索結果画面の文書タイトルとuriを見やすくするために、フィルタをつくりました。
Namazuのfilterディレクトリ(/usr/share/namazu/filter/など)に、添付したpukiwiki.plを置いてください。
適当なページを編集し、ページを更新してください。バックグラウンドでmknmzが実行され、しばらく待つとNamazuでの検索ができるようになっているはずです。
$update_execの行に
$update_exec = 'set PATH=...; /usr/bin/mknmz ....';と書くのもいいかもしれません。
kakasi2.3.4でも動作確認とれました。
Namazu 2.0.10及び2.0.11にクロスサイトスクリプティングの脆弱性があることが明らかになり、2.0.12がリリースされています。
なお、今回発見された脆弱性はウェブサーバーがIISの場合にのみ発生します。apacheでは2.0.10のままで問題ありません。
添付ファイルの中身の検索・表示とかは可能なんでしょうか
Xreaでやってみようとしていますが、うまくいきません
- system(PKWK_UPDATE_EXEC . ' > /dev/null &'); + system('start /b cmd /c ' . PKWK_UPDATE_EXEC . ' > nul');また,namzurcのReplaceもサンプルにならって書きましたが動きませんでした。以下のように指定したところ動作しました(<>は記述しません)。 -- moerrari 2011-01-01
Replace [Cc]:/<pukiwiki設置ディレクトリへのパス>(<pukiwiki設置ディレクトリ名 >)/wiki/ /\1/?