「Mecab/php7実装」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「 ==php7.0でmecabを動かす== php7でmecabを動かそうとすると以下エラーが出る PHP Fatal error: Uncaught Error: Call to undefined function mecab_split(...」) |
(→configure実行時"mecab-config... configure: error: not found"エラーとなる場合) |
||
| (同じ利用者による、間の6版が非表示) | |||
| 行7: | 行7: | ||
参考:https://twitter.com/rsky/status/672877419674468352 https://github.com/rsky/php-mecab | 参考:https://twitter.com/rsky/status/672877419674468352 https://github.com/rsky/php-mecab | ||
| + | |||
| + | ===インストール=== | ||
$ cd /usr/local/src | $ cd /usr/local/src | ||
$ git clone https://github.com/rsky/php-mecab | $ git clone https://github.com/rsky/php-mecab | ||
$ cd php-mecab/mecab | $ cd php-mecab/mecab | ||
| − | $ phpize | + | $ sudo phpize |
| − | $ ./configure --with-mecab= | + | $ ./configure --with-mecab=/bin/mecab-config |
$ make | $ make | ||
$ make test | $ make test | ||
| 行20: | 行22: | ||
PHP Fatal error: Uncaught Error: Call to undefined function mecab_split() in Command line code:1 | PHP Fatal error: Uncaught Error: Call to undefined function mecab_split() in Command line code:1 | ||
| + | ===configure実行時"mecab-config... configure: error: not found"エラーとなる場合=== | ||
| + | 本体の場所を確認 | ||
| + | <pre> | ||
| + | which mecab-config | ||
| + | /usr/bin/mecab-config | ||
| + | </pre> | ||
| + | |||
| + | 以下を実行 | ||
| + | ./configure --with-mecab=/usr/bin/mecab-config | ||
| + | |||
| + | ==php.ini確認== | ||
| + | /etc/php.d/mecab.ini | ||
| + | extension=mecab.so | ||
| + | |||
| + | 読み込み確認 | ||
| + | $ php -m | grep mecab | ||
| + | mecab | ||
| + | |||
| + | ===確認=== | ||
mecab_split()ではなく\MeCab\split()に変更されている様子。 | mecab_split()ではなく\MeCab\split()に変更されている様子。 | ||
2026年4月4日 (土) 12:16時点における最新版
目次
php7.0でmecabを動かす
php7でmecabを動かそうとすると以下エラーが出る
PHP Fatal error: Uncaught Error: Call to undefined function mecab_split()
こちらにphp7で対応されてるphp_mecabがあるとのことだったので入れてみた
参考:https://twitter.com/rsky/status/672877419674468352 https://github.com/rsky/php-mecab
インストール
$ cd /usr/local/src $ git clone https://github.com/rsky/php-mecab $ cd php-mecab/mecab $ sudo phpize $ ./configure --with-mecab=/bin/mecab-config $ make $ make test $ sudo make install Installing shared extensions: /usr/lib64/php/modules/ $ php -r "print nl2br(print_r(mecab_split("すもももももももものうち")));" PHP Warning: Module 'mecab' already loaded in Unknown on line 0 PHP Fatal error: Uncaught Error: Call to undefined function mecab_split() in Command line code:1
configure実行時"mecab-config... configure: error: not found"エラーとなる場合
本体の場所を確認
which mecab-config /usr/bin/mecab-config
以下を実行
./configure --with-mecab=/usr/bin/mecab-config
php.ini確認
/etc/php.d/mecab.ini
extension=mecab.so
読み込み確認
$ php -m | grep mecab mecab
確認
mecab_split()ではなく\MeCab\split()に変更されている様子。
$ php -r "print_r(\MeCab\split("すもももももももものうち"));"
Array
(
[0] => すもも
[1] => も
[2] => もも
[3] => も
[4] => もも
[5] => の
[6] => うち
)
参考:https://teratail.com/questions/27491
MeCab_Taggerも変更
Fatal error: Uncaught Error: Class 'MeCab_Tagger' not found // $mecab = new MeCab_Tagger(); // php5.6 $mecab = new \MeCab\Tagger(); // php7
