phpとmecabの連携
ちょっと前まで、サーバ落ちてました。(汗
正確には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というコマンドがあること。なんじゃろと思い調べてみました。
んー、まだ私にはなんとなくしか分かりません(汗
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