phpとmecabの連携phpとmecabの連携

2009/01/09

ちょっと前まで、サーバ落ちてました。(汗
正確にはphp のバージョンアップに失敗し、動作不良になったのでサーバをしばらく止めてました。ようやく復活!!

その間に、apache、phpをバージョンアップ!
さらに今回は以前インストールしたmecabとphpを連携させたので、そのレポートをば。

phpとmecabの連携

まずは、page2さんのmecab extensionライブラリを利用させていただきます。
そしてここ(Making The Road Blog : さくらでMeCab PHP extension)を参考にさせていただきインストール。
ダウンロードしてきたmecab extensionライブラリを展開してインストールします。

#tar zxvf php_mecab-0.3.0.tgz
#cd php_mecab-0.3.0
#phpize
#./configure
#make
#make install

いままでのインストールと違うなと思ったのは、phpizeというコマンドがあること。なんじゃろと思い調べてみました。
phpize
んー、まだ私にはなんとなくしか分かりません(汗

php.iniを編集

インストール時に作成されたmecab.so という共有オブジェクトファイルをphp.iniに書き込んで、phpに読み込ませます。
この中に、関数やデータが組み込まれているようです。
私がphp.iniを編集したのは2点で、拡張ライブラリ読み込みようのディレクトリ指定と、mecabライブラリ読み込みの追記です。

拡張ライブラリ読み込み用のディレクトリ指定

共有オブジェクトを読み込む際に、フルパスでの指定ができません。まず、ディレクトリの指定をしてやる必要があります。

#extension_dir = “./”
extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613/”

まずディレクトリの指定を、デフォルトは “./” に設定されているので、mecab.soのディレクトリ指定に変更します。

mecabライブラリ読み込み

続いて、mecab.soライブラリの指定を追記します。

extension=mecab.so

そしてapacheを再起動させ、設定を反映させます。

#/usr/local/apache2/bin/apachectl stop
#/usr/local/apache2/bin/apachectl start

(※私の環境の場合、restartさせるとphp.iniの変更が反映されないようで、毎回stop,startしてます)

とりあえずインストールはできたようなので、動作確認に簡単な(ちょー手抜きな)形態素解析サービスを作ってみました。

動作サンプル

形態素解析テスト
※2009/1/9 追記
どうやら動いてないようです。。。残念。今日の晩あたりには修正します。。。。
※2009/1/9 追記終わり

適当に文章を入力してもらえれば、解析結果が返ってくるはずです。デザインがしょぼいのはご愛嬌w

タグ: , , ,

関連があるかもしれないエントリー

コメント / トラックバック1件

  1. [...] pblo» Blog Archive » phpとmecabの連携 [...]

コメントをどうぞ