さくらサーバーにインストール
これは、2018年1月現在に行った作業の記録。同じさくらサーバーで7,8年前にインストールしたときとすこしちがっていた点があった。同じさくらでもサーバーのライブラリー環境などが多少変化しているせいかも知れない。
ssh ログインする。
環境変数の設定
% vi .cshrc
これで ssh 再接続して環境変数を読み込ませておく。
% mkdir -p src bin lib include etc share libexec
以下のソースを FTP で $HOME/src/ にアップロードしてから、ssh のシェルでインストールする。
zlib-1.2.5.tar.gz
% cd src
% tar xzvf zlib*
% cd zlib-1.2.5
% ./configure --prefix=$HOME
% make && make install
libiconv-1.14.tar.gz
同様
qdbm-1.8.78.tar.gz
同様
(./configure オプションに --enable-zlib をつける。)
hyperestraier-1.4.13.tar.gz
同様
(./configure オプションに --enable-static をつけるとコンパイルに失敗するのでつけない。)
xpdf のインストール
つぎに PDF 対応するため xpdf をインストールする。新しいバージョンの xpdf ソースではコンパイルに失敗するので古いのを使う。また、バイナリーをダウンロードしてきても動作しないので、ソースから作ること。
なぜ失敗するのかは確認してない。
xpdf-3.03 の入手
ここから xpdf-3.03.tar.gz を落としてくる。サーバーにFTPアップロード。$HOME/src/
sshログイン。
% cd src
% tar xzvf xpdf*
% cd xpdf-3.03
% ./configure --prefix=$HOME
% make
% make install
この作業では xpdf などのバイナリは作れないが、hyperestraier に最低限必要な pdftotext のバイナリができるので問題ない。$HOME/bin, libexec, share にインストールされる。
% vi /etc/xpdfrc
/usr/local/ を /home/だれそれ(hogehoge)/ に書き換える
index の作成
ssh にログインした状態で index を作成する。
index ディレクトリの作成
% mkdir /home/hogehoge/www/casket
html ファイル用の作成
% estcmd gather -cl -il ja -sd -cm /home/hogehoge/www/casket /home/hogehoge/www/
pdf ファイル用の作成
% estcmd gather -cl -fx ".pdf" "H@estfxpdftohtml" -fz -ic UTF-8 -sd -cm /home/hogehoge/www/casket /home/hogehoge/www/
なお、pdf の場合はフィルターとして estfxpdftohtml を使うが、フィルターへの PATH が見つからないとコマンドエラーが出るので、
PATH=$PATH:/home/hogehoge/share/hyperestraier/filter
をコマンドの前に設定する必要がある。
検索表示用バイナリ・プログラムの /home/hogehoge/libexec/estseek.cgi と
/home/hogehoge/share/hyperestraier/estseek.conf、estseek.help、estseek.tmpl、estseek.top
をサーバー上の適当な場所にまとめて置く。
estseek.cgi を置く方法は、ssh のシェル画面でコピー移動するか、FTP でアップロードする場合は転送モードをバイナリにする。こうしないと Internal Server Error をおこしてしまう。
estseek.conf を実際の個別環境に合わせて書き換える。(indexname と replace の部分)
検索フォームをウェブ上に作って完了。
特定のディレクトリをインデックスから除外する
検索対象にしたくないファイルがあるばあい、そのディレクトリを除外する設定。
一度、除外せずにインデックスを作っている場合は、まず既存のインデックスを削除する。
% estcmd purge -fc インデックス(casket)
/www/secret というディレクトリ(フォルダ)を除外したいとする。
% find /home/hogehoge/www -type f -not -path /home/hogehoge/www/secret/\* | estcmd gather -cl -il ja -sd -cm /home/hogehoge/www/casket -
ここでは、コマンドをパイプする。secret/ 以下のアタリスク * 前にバックスラッシュ \ が必須。最後のハイフン - は find の出力を標準入力として読み込むため。除外したいディレクトリが複数あるときは、-not -path で追加すればいい。なお、コマンドをシェルスクリプトで作って、cron でインデックスを自動更新するようにする。
例:
% cd /home/hogehoge/bin
% vi estcmd.sh
pdf の場合は
実行属性をつける。
% chmod +x estcmd.sh
cron を設定する。さくらサーバーの場合は「コントロールパネル・ログイン」から設定できる。