Ubuntuにmecabをいれ、PHPからインストールにするにはOpendogsのmecabバインディング「php_mecab」が便利。
今回はそのインストールなどを紹介。
一通りのコマンド
まとめると
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を見てみましょう
とmecabの項目が追加されていれば成功です!
コメント
[…] http://worktoolsmith.com/1141/ […]