Home > manual  > V3.0 for Linux

V3.0 for Linux

1. 動作環境

 SUZAKU バージョン3は、以下の環境で開発・稼動確認をしています(2007/9/1現在)。

 ・Vine Linux 4.1
 ・Apache 2.2.3
 ・MySQL 5.0.27
 ・Ruby 1.8.5
 ・MySQL/Ruby 2.7.4
 ・Chasen 2.4.2
 ・ipadic 2.7.0
 ・ruby-chasen 1.6

 いずれのソフトウェアも、無償でダウンロードが可能です。
 SUZAKU バージョン3の文字コードは、UTF-8を前提としています。スクリプトもUTF-8で記述されています。

投稿者 webmaster : 2007年09月22日 19:10 | コメント (0) | トラックバック (0)

2. 前提ソフトのインストール

 Vine Linux 4.1を例にとって、前提ソフトのインストール手順を説明します。
 なお、下記の手順で # で始まる部分は root で実行してください。
 vi コマンドに続く、--- から --- までの部分は、ファイルの編集内容です。

2.1 Vine Linux 4.1

 サーバーとして使用する場合、不要なパッケージは極力インストールしないようにします。
 パッケージの選択では、「サーバー」で、「開発ツール」だけを選択し、その後、必要なパッケージだけを追加でインストールします。
 所定の手順に従って、インターネットにアクセスできるようにしておきます。

 個人の自宅のPCサーバーでも、常時接続可能な回線(ADSLなど)とダイナミックDNSサービスを使用すれば、外部に公開することができます。ただし、この際には、別途ファイアウォールを立てる、ADSLルータモデムのIPフィルタリング機能できちんとアクセス制限をかける、サーバー側でも不要なサービスを停止しておく、などのセキュリティ面での十分な対策が必要です。
 この辺りの詳しい設定方法については、多くの書籍が発売されているので、そちらを参考にしてください。
 Vine Linuxでのサーバー構築に関しては、以下のサイトが参考になります。
  ・Vine Linuxで自宅サーバー
 SUZAKUの文字コードはUTF-8を前提としていますが、Vine Linuxの文字コードはEUCなので、注意が必要です。

2.2 Apacheのインストール

 webサーバーのApacheをインストールします。
$ su
# apt-get install apache2

 Apacheを起動して、インストールがうまくいったことを確認します。
# /etc/rc.d/init.d/apache2 start

 設定ファイルを修正します。
# vi /etc/apache2/conf/apache2.conf
---
ServerTokens Prod
ServerAdmin webmaster@your-host-name
ServerName your-host-name
DocumentRoot "/var/www/html"

<Directory />
 Options None
 AllowOverride None 
</Directory>

<Directory "/var/www/html">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

HostnameLookups Off

CustomLog logs/access_log combined

ServerSignature Off

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

<Directory "/var/www/cgi-bin">
Options ExecCGI
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

AddHandler cgi-script .cgi .rb

#AddDefaultCharset UTF-8  <- コメントアウト
---

 Apacheを再起動します。
# /etc/rc.d/init.d/apache2 start

 OS再起動時に、Apacheを自動起動するように設定します。
# /sbin/chkconfig apache2 on

2.3 MySQLのインストール

 MySQLをインストールします。Vine Linux 4.1のMySQLのパッケージのバージョンは、5.0.27です。
# apt-get install MySQL-server MySQL-client MySQL-devel
# apt-get MySQL-shared MySQL-Max perl-DBD-MySQL

# /etc/rc.d/init.d/mysql start

 設定ファイルを作成し、修正します。
# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
---
[mysqld]
default-character-set=utf8  <-- 追加

[mysql]
default-character-set=utf8  <-- 追加

[mysqldump]
default-character-set=utf8  <-- 追加

---

 MySQLを再起動します。
# /etc/rc.d/init.d/mysql restart

 OS再起動時に、MySQLを自動起動するように設定します。
# /sbin/chkconfig mysql on

 MySQLのroot(システムのrootではない)のパスワードを設定します。
# mysqladmin -u root password "your_mysql_root_password"

2.4 Rubyのインストール

 Rubyは、まつもとゆきひろさんが開発した、オブジェクト指向のスクリプト言語です。
 以下の手順で、Rubyをインストールします。
# apt-get install ruby
# ruby --version

2.5 MySQL-Rubyインタフェースのインストール

 RubyからMySQLを使用できるようにするために、MySQL-Rubyインタフェースをインストールします。
 MySQL/Rubyのホームページ
 http://tmtm.org/mysql/ruby/
 http://tmtm.org/downloads/mysql/ruby/
からmysql-ruby-2.7.4.tar.gzをダウンロードします。

 以下の手順で、MySQL-Rubyインタフェースをインストールします。
# apt-get install ruby-devel

# cd /usr/local/src
# tar zxfv mysql-ruby-2.7.4.tar.gz
# cd mysql-ruby-2.7.4

# ruby extconf.rb --with-mysql-config
# make
# make install
# ruby -I. ./test.rb localhost root your_mysql_root_passwd

2.6 ChaSenのインストール

 SUZAKUでは、ホームページの検索を行うために、そこに含まれる日本語の文章から、検索の際に使用するキーワードを抜き出し、インデックス(索引)としてデータベースに格納します。ChaSenはフリーの日本語形態素解析器で、SUZAKUでは日本語の文章からキーワードを抜き出す際に、文章を単語単位に分解するために使用します。
 ChaSen(およびその前提ソフトのDarts)と、ChaSenが使用する辞書(ipadic)のソースをChaSenのホームページ
 http://chasen-legacy.sourceforge.jp/
からダウンロードします。

 以下の手順で、ChaSenとDartsをインストールします。
# cd /usr/local/src
# tar zxfv darts-0.31.tar.gz
# cd darts-0.31
# ./configure
# make
# make check
# make install

# cd /usr/local/src
# tar zxfv chasen-2.4.2.tar.gz
# cd chasen-2.4.2

# ./configure
# make
# make install

# vi /etc/ld.so.conf
---
/usr/local/lib  <- 追加
---

# /sbin/ldconfig -v

2.7 ipadicのインストール

 ipadicをインストールします。合わせて、辞書の文字コードをUTF-8に変換します。
 参考: http://pcweb.mycom.co.jp/column/yetanother/045/

# cd /usr/local/src
# tar zxfv ipadic-2.7.0.tar.gz

(辞書をUTF-8に変換する)
# cp -R ipadic-2.7.0 ipadic-2.7.0-UTF8
# cd ipadic-2.7.0-UTF8
# ./configure

#vi to-utf8.sh
---
#!/bin/sh
for file in $*
do
if [ -f $file ]; then
nkf --utf8 $file > tmpfile
mv tmpfile $file
fi
done
exit
---

#chmod 755 to-utf8.sh
#./to-utf8.sh *.dic *.cha

# `chasen-config --mkchadic`/makemat -i w
# `chasen-config --mkchadic`/makeda -i w chadic *.dic
# make install

# cd /usr/local/etc
# cp chasenrc chasenrc.org
# nkf --utf8 chasenrc > chasenrc.tmp
# mv chasenrc.tmp chasenrc

(以下の定義を追加する。これにより、英単語や数字が1文字づつ分解されないようになります。)
# vi chasenrc
---
(COMPOSIT_POS ((名詞 一般) (名詞 数) (記号 アルファベット)))
---

# echo "「日本語」を扱う上で欠かせないツール。" | chasen -i w
# echo "My name is Takashi. B777 DMC-FZ1 2005.04.01." | chasen -i w

2.8 Ruby/ChaSen のインストール

 Ruby/ChaSenは、RubyスクリプトからChaSenを使用するためのインタフェース・ライブラリです。
 RAA(Ruby Application Archive)
 http://raa.ruby-lang.org/project/ruby-chasen/
から、Ruby/ChaSenのソース(chasen1.6.tar.gz)をダウンロードします。

 以下の手順で、Ruby/ChaSenをインストールします。
# cd /usr/local/src
# tar zxfv chasen1.6.tar.gz
# cd chasen1.6
# ruby -rmkmf -e 'dir_config("chasen","/usr/local"); \
> have_library("stdc++"); create_makefile("chasen") if have_library("chasen")'
# make
# make install
# /sbin/ldconfig -v

投稿者 webmaster : 2007年09月22日 19:22 | コメント (0) | トラックバック (0)

3. SUZAKUのインストール

3.1 SUZAKUパッケージのインストール

 SUZAKUのDownloadページから、アーカイブファイル(suzaku-x.x.x.tar.gz)をダウンロードします。解凍すると、以下のフォルダができます。

$ tar zxfv suzaku-x.x.x.tar.gz

 suzaku-3.x.x
  /cgi-bin
    /suzaku_sample ・・・ (1)
      /admin ・・・ (3)
      /bin
        /log
        /tmp
      /lib
  /html
    /suzaku_sample ・・・ (2)
      /images

 Apacheの設定ファイルで、ScriptAlias /cgi-bin/ に指定したディレクトリ(上記の例だと、/var/www/cgi-bin)に、(1)のsuzaku_sampleフォルダを、フォルダごとコピーします。
 同じく、Apacheの設定ファイルで、DocumentRoot に指定したディレクトリ(上記の例だと、/var/www/html)に、(2)のsuzaku_sampleフォルダを、フォルダごとコピーします。

$ cd suzaku-3.x.x
$ cp -R cgi-bin/suzaku_sample /var/www/cgi-bin/.
$ cp -R html/suzaku_sample /var/www/html/.

 パーミッションを設定します。
$ cd /var/www/cgi-bin/suzaku_sample
$ chmod 707 *.rb
$ chmod 757 admin
$ chmod 707 admin/*.rb
$ chmod 757 bin/log
$ chmod 757 bin/tmp

 Linux版のSUZAKUは、rubyインタプリタが、/usr/bin/ruby にあることを想定しています。これ以外の場所にrubyがインストールされている場合には、(1)および(3)のフォルダ内にある .rb ファイルの先頭に記述されている
 #!/usr/bin/ruby
の部分を修正する必要があります。

3.2 検索サイトの構築

 検索サイトのサンプル「suzaku_sample」を修正して、独自の検索サイトを構築します。

(1) 事前に確認/決定しておく事項

 以下の事項をあらかじめ確認/決定しておきます。

 ・検索サイトのURL
 ・管理者宛メールの送信元、送信先のメールアドレス
 ・データベース用のユーザーID、パスワード、データベース名
 ・どのようなカテゴリのホームページを検索対象とするか

 ここでは、仮に以下の前提で、設定方法の説明を行います。

 ・検索サイトのURL: http://localhost/eagle/
 ・管理者用メールの送信用メールサーバー: smtp.your_site.com
 ・管理者宛メールの送信元: webmaster@your_site.com
 ・管理者宛メールの送信先: your_name@your_site.com
 ・MySQL管理者(root)のパスワード: wxyz5678
 ・データベース用のユーザーID: eagle_user
 ・データベース用のパスワード: abcd1234
 ・データベース名: eagle
 ・カテゴリ: 01-コンピュータ・ハードウェア、02-コンピュータ・ソフトウェア
   (01,02はカテゴリ・コード(英数字2桁))

(2) 検索サイトのディレクトリ名と、「suzaku_conf.rb」ファイルの変更

 ディレクトリ名を変更します。
$ cd /var/www/cgi-bin
$ mv suzaku_sample eagle
$ cd /var/www/html
$ mv suzaku_sample eagle

 「suzaku_conf.rb」ファイルの内容を修正します。
$cd /var/www/cgi-bin/eagle
$ vi suzaku_conf.rb
---
# suzaku_conf.rb : 設定ファイル

site_name = "eagle"
image_file_directry = "/eagle/images/"

test_mode = false

# MySQL データベース接続パラメータ
host = "localhost"
userid = "eagle_user"
password = "abcd1234"
database = "eagle"

# MySQL データベース接続パラメータ
# (create/drop database)
root_userid = "root"
root_password = "wxyz5678"

# メール設定
mail_server = "smtp.your_site.com"
mail_from = "webmaster@your_site.com"
mail_to = "your_name@your_site.com"

# ホームページ巡回時の設定
# interval = 604800
# time_limit = 1800
start_level = 1
max_level = 9
max_continue = 20
tmp_dir = "tmp"
log_dir = "log"
log_out = true
limit_in_same_site = true
# message_out = false
# force = false
auto_delete = true

# 巡回テスト用
interval = 1800
time_limit = 180
message_out = true
force = true

# サイトのカテゴリー文字列
01 = "コンピュータ・ハードウェア"
02 = "コンピュータ・ソフトウェア"

# 表示色
text_color = "#333333"
bg_color = "#FFFFFF"
link_color = "#0000FF"
alink_color = "#0099FF"
vlink_color = "#800080"
result_color = "#990000"
score_color = "#DD6600"
info_color = "#999999"
table_color = "#CCCCCC"

# 表示色(管理者モード)
normal_msg_color = "#006666"
error_msg_color = "#CC0000"

 上記は設定は、システムの稼動確認用の設定例です。システムの本番稼動時には、上記の設定のうち「巡回テスト用」以下に記述されている
interval = 60
time_limit = 180
message_out = true
force = true

をコメントアウト(行の先頭に#を入れる)して、「ホームページ巡回時の設定」以下に記述されている同じキーワードの行を有効にする(行の先頭の#を削除する)とよいでしょう。

(5) データベースの作成

 検索対象とするホームページの URL を登録します。ブラウザで、URL
  http://localhost/cgi-bin/eagle/index.rb
にアクセスします。

 右下の「管理者モード」をクリック」すると、管理者モードのログイン画面が表示されます。

 パスワード(設定ファイルの「password =」で指定したもの)を入力し、「実行」をクリックすると、管理者モードに入ります。上部のメニューから、「システム管理」をクリックします。

 ホームページの URL や検索に使用するキーワードのインデックス(索引)を格納するデータベースを作成します。

 最初に「データベースの作成」をクリックします。
 次に「テーブルの作成」をクリックします。

 ※「システム管理」の「テーブルの削除」「データベースの削除」を実行すると、検索サイト内のデータが全て消えてしまうので、注意してください。

(6) URL の登録

 上部のメニューから、「サイトの新規登録」をクリックします。

「URL」に検索対象とするホームページのトップページのURLを入力します。(必須)
「種別」にはそのホームページの種類に応じたカテゴリーコードを入力します。(必須)
「名称(漢字)」「名称(かな)」は、そのホームページの名称を漢字(全角)とひらがな(全角)で入力します。(必須)
「メールアドレス」には、そのホームページの管理者のメールアドレスを入力します。(オプション)。
「コメント」には、そのホームページに関するコメントを入力します。(オプション)
 入力したら、「実行」をクリックします。

 上部のメニューの「登録サイト一覧」をクリックすると、登録したホームページの一覧が表示されます。

 登録した内容の修正、削除を行うときは、「NO.」欄の該当行の数字をクリックして下さい。

 登録が終わったら、「システム管理」で「登録サイトのバックアップ」をクリックして、バックアップを取っておきましょう。こうすると、admin ディレクトリの下に url_data.rb というファイル名で、登録したサイトのリストが保存されます。データベースが壊れたときに、「データベースの削除」「データベースの作成」「テーブルの作成」を実行した後、「登録サイトの復元」を行うと、データベースを初期状態に戻すことができます。

 「管理者モード」を終了するには、上部のメニューの「ログオフ」をクリックして下さい。

(7) ホームページの巡回処理を実行する。

 ホームページの巡回処理を実行します。カレントディレクトリを、SUZAKUのbinディレクトリに移動します。
$ cd /var/www/cgi-bin/eagle/bin

 制御用ファイルを作成します。
$ touch tmp/control
$ chmod 606 tmp/control

 巡回処理を実行します。
$ ruby robot.rb abcd1234 <-- パスワード

 巡回結果は、「管理者モード」の「登録サイト一覧」、「巡回ログ」、「システム状況」で確認できます。
 巡回処理を途中で中止したい場合には、「管理者モード」の「システム管理」で「インターネットの巡回を停止」をクリックして下さい。

(8) 検索サイトの画像の変更

 初期状態では、検索サイトのトップページは

 となっています。
ページ上部の画像は、/var/ww/html/eagle/images ディレクトリの下の title.jpg というファイルなので、あなたのサイトにふさわしい画像に変更して下さい。同じく、ページ中央の画像 main.jpg も変更して下さい。

投稿者 webmaster : 2007年09月22日 20:46 | コメント (0) | トラックバック (0)

4. SUZAKUの設定

 SUZAKUの設定は suzaku_conf.rb ファイルで行います。設定方法は、こちらを参照して下さい。

投稿者 webmaster : 2007年09月22日 21:13 | コメント (0) | トラックバック (0)