なんかMeCab何回も入れなおして、そのたびに必ずなにか起こってたのですが、もうさすがにうんざりなのでまとめときます。
MeCabを入れる
MeCabのファイルをとってくる
http://mecab.googlecode.com/files/mecab-0.98.tar.gz
0.98でないとPHPでよめない!!みたいな記事を散々見てきたので0.98です。wget で取ります。
hoge$ wget http://mecab.googlecode.com/files/mecab-0.98.tar.gz
で、解凍します
hoge$ tar zxfv mecab-0.98.tar.gz
解凍したMeCabの中に移動
hoge$ cd mecab-0.98
公式には何も書いてないのですが、UTF-8でインストールしないと後でphpとかと連携するときにめんどくさい処理をかまさなければ
ならなくなるので、
mecab-0.98$ ./configure --with-charset=utf8
をつける。実行。
checking if g++ supports stl <list> (required)... configure: WARNING: g++ stl <list> does not work checking if g++ supports stl <map> (required)... configure: WARNING: g++ stl <map> does not work checking if g++ supports stl <set> (required)... configure: WARNING: g++ stl <set> does not work checking if g++ supports stl <queue> (required)... configure: WARNING: g++ stl <queue> does not work checking if g++ supports stl <functional> (required)... configure: WARNING: g++ stl <functional> does not work checking if g++ supports stl <algorithm> (required)... configure: WARNING: g++ stl <algorithm> does not work
んん?
最後に
configure: error: Your compiler is not powerful enough to compile MeCab. If it should be, see config.log for more information of why it failed.
とエラー。
g++コンパイラがなかったのでこんなことになるのでした。install。
mecab-0.98$ sudo apt-get install g++
終わったらもう一度
mecab-0.98$ ./configure --with-charset=utf8
そしてmake
mecab-0.98$ make
なんかズラズラとコンソールが流れますがしばらく放置。私のPCでは30秒ぐらいだった。
makeinstallする
mecab-0.98$ sudo make install
すぐ終わります。
mecab-0.98$ sudo ldconfig
これでmecab本体は終わり。
IPA辞書を入れる
でもこのままでは動かない。次は辞書をいれます。
いまmecabのディレクトリにいるので上へ。
mecab-0.98$ cd ..
辞書の場所は
http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
これなので、またwgetで取る。
hoge$ wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz
解凍
hoge$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
解凍した辞書の中へ。
hoge$ cd mecab-ipadic-2.7.0-20070801/
こちらもutf8をつける
mecab-ipadic-2.7.0-20070801$ ./configure --with-charset=utf8
ちゃんと出来るはず。
そしてmake
mecab-ipadic-2.7.0-20070801$ make
インストール
mecab-ipadic-2.7.0-20070801$ sudo make install
できた!
実行してみる
ディレクトリはどこでもいいのでmecabって打ってみましょう。
mecab-ipadic-2.7.0-20070801$ mecab
これで入力モードになります。適当に文字を打ってみる。
いいぜ、てめえがなんでも思い通りに出来るってなら、まずはそのふざけた幻想をぶち殺す いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ ぜ 助詞,終助詞,*,*,*,*,ぜ,ゼ,ゼ 、 記号,読点,*,*,*,*,、,、,、 てめえ 名詞,代名詞,一般,*,*,*,てめえ,テメエ,テメー が 助詞,格助詞,一般,*,*,*,が,ガ,ガ なん 名詞,代名詞,一般,*,*,*,なん,ナン,ナン でも 助詞,副助詞,*,*,*,*,でも,デモ,デモ 思い通り 副詞,助詞類接続,*,*,*,*,思い通り,オモイドオリ,オモイドーリ に 助詞,副詞化,*,*,*,*,に,ニ,ニ 出来る 動詞,自立,*,*,一段,基本形,出来る,デキル,デキル って 助詞,格助詞,連語,*,*,*,って,ッテ,ッテ なら 接続詞,*,*,*,*,*,なら,ナラ,ナラ 、 記号,読点,*,*,*,*,、,、,、 まずは 接続詞,*,*,*,*,*,まずは,マズハ,マズワ その 連体詞,*,*,*,*,*,その,ソノ,ソノ ふざけ 動詞,自立,*,*,一段,連用形,ふざける,フザケ,フザケ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 幻想 名詞,サ変接続,*,*,*,*,幻想,ゲンソウ,ゲンソー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ ぶち 接頭詞,動詞接続,*,*,*,*,ぶち,ブチ,ブチ 殺す 動詞,自立,*,*,五段・サ行,基本形,殺す,コロス,コロス EOS
わぁい
PHPでMeCabを使えるようにする
まずはpearを入れる必要がある。
hoge$ sudo apt-get install php-pear
そしてMeCabをPHPから使えるようにするやつを入れるため、pearのチャンネルを設定。
hoge$ pear channel-discover pecl.opendogs.orgAdding not create lock file: fopen(/usr/share/php/.lock): failed to open stream: Permission denied
えっまじで?sudoつけてもう一度。
hoge$ sudo pear channel-discover pecl.opendogs.orgAdding Channel "pecl.opendogs.org" succeeded Discovery of channel "pecl.opendogs.org" succeeded
いけた。
hoge$ pear remote-list -c open dogs
hoge$ pear install opendogs/mecab-beta Cannot install, php_dir for channel "pecl.opendogs.org" is not writeable by the current user
ウイッス。sudoつけてもう一度
hoge$ sudo pear install opendogs/mecab-beta downloading mecab-0.5.0.tgz … Starting to download mecab-0.5.0.tgz (51,723 bytes) .............done: 51,723 bytes 6 source files, building running: phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 specify pathname to mecab-config [no] :
こんなのが出てくるのでそのままenter
ズラズラっとログがでてきて最後に…
Build process completed successfully Installing '/usr/lib/php5/20090626+lfs/mecab.so' install ok: channel://pecl.opendogs.org/mecab-0.5.0 configuration option "php_ini" is not set to php.ini location You should add "extension=mecab.so" to php.ini
おk!!で、extension=mecab.soってのをphp.iniに追加します。
hoge$ vi /etc/php5/apache2/php.ini
追加する場所はどこでもいいです。わかりやすいので先頭につけてやりました。
apacheを再起動
$ sudo /etc/init.d/apache2 restart
phpが動く場所にmecabを呼び出すphpを書きましょう。私の場合は
/var/www$ vi mecabtest.php
にこう書きました。
<html> <head><meta charset="utf8"></head> <body> <?php $str = "そんな上手い方法があるなら、僕たちインキュベイターの戦略も、もっと違ったものになっただろうね"; $result = mecab_split($str); print_r($result); ?> </body> </html>
インデントおかしいですよね。すいません。このサーバまだvi設定してなかったのでこんなことに。
そしてブラウザから読み込んでみる!!!
Array ( [0] => そんな [1] => 上手い [2] => 方法 [3] => が [4] => ある [5] => なら [6] => 、 [7] => 僕 [8] => たち [9] => インキュベイター [10] => の [11] => 戦略 [12] => も [13] => 、 [14] => もっと [15] => 違っ [16] => た [17] => もの [18] => に [19] => なっ [20] => た [21] => だろ [22] => う [23] => ね )
完了です。