Ubuntuにmecabのphpバインディングphp_mecabをインストールする

Ubuntuにmecabをいれ、PHPからインストールにするにはOpendogsのmecabバインディング「php_mecab」が便利。

今回はそのインストールなどを紹介。

一通りのコマンド

OpenDogsのインストールを方法を参照

まとめると

pear channel-discover pecl.opendogs.org
pear remote-list -c opendogs
pear install opendogs/mecab-beta

となります。

Ubuntuではすべてsudoで実行する。

実は少し前までエラーだらけ

実はPHP5.3にインストールするときには、mecab-beta 0.4.1までは上記のコマンドでエラーが多発しました。

エラーは

/bin/sh /usr/local/src/php_mecab-0.4.1/libtool --mode=compile cc  -I. -I/usr/local/src/php_mecab-0.4.1 -DPHP_ATOM_INC -I/usr/local/src/php_mecab-0.4.1/include -I/usr/local/src/php_mecab-0.4.1/main -I/usr/local/src/php_mecab-0.4.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/local/include  -DHAVE_CONFIG_H  -g -O2   -c /usr/local/src/php_mecab-0.4.1/mecab.c -o mecab.lo
mkdir .libs
 cc -I. -I/usr/local/src/php_mecab-0.4.1 -DPHP_ATOM_INC -I/usr/local/src/php_mecab-0.4.1/include -I/usr/local/src/php_mecab-0.4.1/main -I/usr/local/src/php_mecab-0.4.1 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -c /usr/local/src/php_mecab-0.4.1/mecab.c  -fPIC -DPIC -o .libs/mecab.o
/usr/local/src/php_mecab-0.4.1/mecab.c: In function 'php_mecab_object_new':
/usr/local/src/php_mecab-0.4.1/mecab.c:981: error: 'zend_class_entry' has no member named 'default_properties'
/usr/local/src/php_mecab-0.4.1/mecab.c: In function 'php_mecab_node_object_new':
/usr/local/src/php_mecab-0.4.1/mecab.c:1086: error: 'zend_class_entry' has no member named 'default_properties'
/usr/local/src/php_mecab-0.4.1/mecab.c: In function 'php_mecab_path_object_new':
/usr/local/src/php_mecab-0.4.1/mecab.c:1188: error: 'zend_class_entry' has no member named 'default_properties'
/usr/local/src/php_mecab-0.4.1/mecab.c: In function 'php_mecab_check_path':
/usr/local/src/php_mecab-0.4.1/mecab.c:1798: error: 'struct _php_core_globals' has no member named 'safe_mode'
/usr/local/src/php_mecab-0.4.1/mecab.c:1798: error: 'CHECKUID_CHECK_FILE_AND_DIR' undeclared (first use in this function)
/usr/local/src/php_mecab-0.4.1/mecab.c:1798: error: (Each undeclared identifier is reported only once
/usr/local/src/php_mecab-0.4.1/mecab.c:1798: error: for each function it appears in.)
make: *** [mecab.lo] エラー 1
という感じ。

これはkouheiszkさんのブログ「PHP 5.4.0 RC6 に php_mecab をインストールする」に詳しく内容と対処法が書かれています。
0.4.1まではこの方法を使わないとダメでした。
非常に助かったブログです。

ただ、2012年3月5日時点ではmecab-betaがVer 0.5.0にあがっており、これは上記コマンドのみですんなりインストールできます。

すばらしい!

PHPの設定追加

上記でインストールできると、最後にphp.iniにmecab.soを追加しろというメッセージがでます。

php.iniを探し、

extension=mecab.so

を追加し、Apacheを再起動します。

ちなみに私の環境(Ubuntu Server 10.04)では

/etc/php5/apache2/php.ini

に書き加えました。

PHP情報を見てみる

Apacheが再起動しましたらphpinfoを見てみましょう

image

とmecabの項目が追加されていれば成功です!