Raspberry Pi で遊ぶ (9) —辞書サーバーとして—

私は Raspberry Pi (RPi) には Raspbian を入れているが、これは Debian wheezy (Debian 7.0) をベースとしており、当然 Web サーバーなんかも簡単な手順で構築できる。それだけでは少し味気ないので、今回は Apache をインストールして、電子辞書を検索するウェブアプリケーション let me see… を導入してみる。

Apache

特に面倒な設定はない。

$ sudo apt-get install apache2
$ sudo usermod -a -G www-data www-data

ブラウザから RPi の IP アドレスへアクセスして、お決まりの画面 (“It works!”) が見えることを確認しておく。

https://skalldan.files.wordpress.com/2013/03/wpid-rpi_letmesee_01.png

let me see…

まずは必要なパッケージをインストールしておく。

$ sudo apt-get install ruby ruby-dev eb-utils libeb16-dev

RubyEB も必要。

$ cd src
$ git clone https://github.com/kubo/rubyeb19.git
$ cd rubyeb19
$ ruby extconf.rb
$ make
$ sudo make install
$ cd ..

‘let me see…’ 最新版は、anonymous cvs で取得可能。

$ cvs -d :pserver:guest@openlab.jp:/circus/cvsroot login
CVS password: guest
$ cvs -d :pserver:guest@openlab.jp:/circus/cvsroot co edict-devel/letmesee

‘let me see…’ そのものは一切のアクセス制限が設けられていないので、サーバ側で適切なアクセス制限を設けておく必要がある。サンプルの dot.htaccess をコピーして適宜編集しておく (Apache の mod_rewrite モジュールを有効化)。

$ cd edict-devel/letmesee
$ cp dot.htaccess .htaccess
$ vi .htaccess
DirectoryIndex index.rb
Options +ExecCGI
AddHandler cgi-script .rb

<Files "*">
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 192.168.0.
</Files>

<Files "letmesee.conf">
   Deny from all
</Files>

同様に letmesee.conf もサンプルから作成しておく。ここに辞書のパスを書いておく。私はファイルサーバー (/mnt/storage) に置いている辞書データを利用した。辞書は このあたり のものが利用できる。

$ cp letmesee.conf.sample letmesee.conf
$ vi letmesee.conf
@dictlist = [
  '/mnt/storage/Library/Dictionaries/epwing/ebzip/Kojien6/',
  '/mnt/storage/Library/Dictionaries/epwing/ebzip/Daijisen',
  '/mnt/storage/Library/Dictionaries/epwing/ebzip/KangoDai/',
]

最後に Apache のドキュメントルート (/var/www) に移動しておく。

$ sudo cp -a . /var/www/letmesee
$ sudo chown -R www-data:www-data /var/www/letmesee

さて、以下は iPad のブラウザから RPi にアクセスした様子。辞書をたくさん持っている方はこうしてサーバーで利用できるようにしておくと、タブレットやスマホなどクライアント側の容量を圧迫する心配をしなくても良い。

rpi_letmesee_02.png

rpi_letmesee_03.png

もちろん、外部公開する場合は、上記のようにアクセス制限をかけるなどして、辞書の使用許諾に反しないよう注意する必要があるだろう。

letmesee 作者の方のブログ:

を参考に、ブラウザ上で選択した単語を検索する bookmarklet を登録しておくと便利。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s