CentOS9 + PHP8.1の環境にMecab + php-mecabをビルドしてインストール

CentOS Stream 9のVPSに形態素解析の機能をインストールしているときの覚書。

環境: CentOS Stream 9, PHP 8.1.14

ビルドに必要なツールをインストールしておく。
# dnf install make gcc-c++ libticonv php-devel


1.形態素解析「Mecab」をインストール

php-mecabをビルドするためにdnf経由ではなくソースコードからビルドする。

公式サイトからダウンロード。
参考: MeCab: Yet Another Part-of-Speech and Morphological Analyzer
# cd /opt/software/
# curl -L "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -o mecab.tgz

解凍してビルド実行
# tar xzvf mecab.tgz
# rm mecab.tgz
# cd mecab-0.996/
# ./configure --with-charset=utf8
# make
# make check
# make install

確認
# which mecab

/usr/local/bin/mecab


辞書をインストールする。
# cd /opt/software/
# curl -L "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -o ipadic.tgz
# tar xzvf ipadic.tgz
# rm ipadic.tgz
# cd mecab-ipadic-2.7.0-20070801/
# ./configure --with-charset=utf-8
# make
# make install

確認
# mecab -D

filename:       /usr/local/lib/mecab/dic/ipadic/sys.dic
version:        102
charset:        utf-8
type:   0
size:   392126
left size:      1316
right size:     1316


2.php-mecabをビルドしてインストール。

前に見つけたPHP8.1に対応している(と思われる)リポジトリをビルドする。
参考: GitHub - emmatools/php-mecab: MeCab binding for PHP

git cloneする。
# cd /opt/software
# git clone https://github.com/emmatools/php-mecab.git
# cd php-mecab/

ビルド実行。
# cd mecab
# phpize
# ./configure --with-mecab=/usr/local/bin/mecab-config
# make
# make test
# make install
# echo "extension=mecab.so" > /etc/php.d/mecab.ini

make testしたときにErrorで終わっているのが気になる。

php-fpmを再起動して確認
# systemctl restart php-fpm
# php -i | grep mecab

PHPから実行してみて確認する。
大丈夫っぽい。


【関連記事】