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)