phpとmecabの連携

· apache, application, インストール

ちょっと前まで、サーバ落ちてました。(汗

正確には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

画像未復旧: hatena.gif

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