「Mecab/php8実装」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→インストール) |
|||
| (同じ利用者による、間の2版が非表示) | |||
| 行9: | 行9: | ||
$ sudo make install | $ sudo make install | ||
Installing shared extensions: /usr/lib64/php/modules/ | Installing shared extensions: /usr/lib64/php/modules/ | ||
| − | $ php -r | + | $ php -r 'print_r(\MeCab\split("すもももももももものうち"));' |
PHP Warning: Module 'mecab' already loaded in Unknown on line 0 | 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 | PHP Fatal error: Uncaught Error: Call to undefined function mecab_split() in Command line code:1 | ||
| 行24: | 行24: | ||
==php.ini確認== | ==php.ini確認== | ||
| − | /etc/php.d/mecab.ini | + | /etc/php.d/mecab.ini に以下を追加 |
extension=mecab.so | extension=mecab.so | ||
| 行34: | 行34: | ||
mecab_split()ではなく\MeCab\split()に変更されている様子。 | mecab_split()ではなく\MeCab\split()に変更されている様子。 | ||
| − | $ php -r | + | $ php -r 'print_r(\MeCab\split("すもももももももものうち"));' |
Array | Array | ||
( | ( | ||
2026年4月7日 (火) 11:24時点における最新版
インストール
$ cd /usr/local/src $ git clone https://github.com/ranvis/php-mecab.git $ 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_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 /bin/mecab-config
以下を実行
./configure --with-mecab=/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
