さくら共用サーバーにmecabをインストールする

さくら共用サーバーで php-mecab を使うだけならサービスに元々含まれている mecab を利用できる。自前の mecab は不要なのでこのエントリーの作業は不要。自前で mecab はインストールすべき。デフォルトの mecab は php のバージョンアップなどでフォルダが変わることがある。php-mecab は mecab のフォルダを指定してるので不具合が起こる。

さくら共用サーバーにmecabをインストールに至った経緯↓↓

=========================================
さくら共用サーバーには最初からmecabが入っている。但し辞書はEUC-JPなのでUTF-8で利用するには自前で辞書を用意しなくてはならない。で、辞書のみをインストールしたがどうもうまくいかない。UTF-8でインストールしても文字化け、EUC-JPで文字を扱ってしまう。
いろいろ調べると、当方サーバーにインストールされているmecabのバージョンは、「0.995」で、このバージョンはUTF-8の辞書をうまく使えないバグがあるらしい。
ということで別バージョンのmecabを共用サーバーにインストールした。
=========================================
↑こう書いたもののいざやってみると、v0.97でも辞書のutf-8化ができない場面に遭遇。mecab本体のインストールは問題なし。mecabのバージョンと辞書の文字コードは関係ないのかもと思い始める。ただutf-8の文字コードで動かすことはできた。詳しくは下記のリンク。

utf-8の辞書、インストール方法はこちら

インストールするmecabのバージョン
—————————————–
mecab 0.97 ←別サーバーでバグがないことを確認済み
—————————————–

インストール先(localは自分で作る)
—————————————–
/home/username/local/
—————————————–

1.ダウンロードしたファイルを解凍
—————————————–
tar xzvf mecab-0.97.tar.gz
—————————————–

2.「configure」実行
—————————————–
cd mecab-0.97 ←フォルダ移動

./configure prefix=$HOME/local with-charset=utf8 enable-utf8-only
—————————————–
※「configure」というシェルスクリプトを実行することで、ソースファイルをコンパイルする前に、インストール対象となるシステム特有の機能/情報をチェックし、チェック状況を記述したMakefileが作成される。

3.コンパイルとインストール
—————————————–
make ← コンパイル

make install ← インストール
—————————————–

すると、インストール時にエラーが出る。

エラー内容
—————————————–
%make install
.././install-sh: Permission denied
*** Error code 126
—————————————–

mecab-0.97フォルダ内のinstall-shファイルにアクセス権限がないとのことで、確認してみる
—————————————–
ls -l install-sh
—————————————–
こう表示された
—————————————–
-rw-r–r– 1 username users 5569 Jan 29 2007 install-sh
—————————————–

アクセス権限を変更(「install-sh」は「install -sh」でないよ。ハマッた)
—————————————–
chmod 755 install-sh
—————————————–

再びインストールを試みる
—————————————–
make install
—————————————–
(make cleanで不要はファイルは消せる)

インストール成功。

接続し直してバージョンを確認。binフォルダはインストールが成功するとできる。
—————————————–
~/local/bin/mecab -v
—————————————–
~(チルダ)は、ユーザのホームディレクトリ(home/username)のこと。$HOMEも同じ。

4.簡単に使えるようにパスを通す

現在のPATHを確認してみる
—————————————–
echo $PATH
—————————————–

結果
—————————————–
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/username/bin
—————————————–
:」は区切り。

パスを書き換えるため、exportを実行するがエラーが出る

コマンド
—————————————–
export PATH=~/local/bin:$PATH
—————————————–

結果
—————————————–
export: Command not found.
—————————————–

ファイルを直接書き換えることにする。
利用しているシェルを確認してみる

コマンド
—————————————–
echo $SHELL
—————————————–

結果
—————————————–
/bin/csh
—————————————–

この場合、ホームディレクトリ直下にある.cshrcファイルを編集することになる。
パスは左から優先されるので、自前のmecabが選択されるよう、一番左にパスを追加する。

編集内容
—————————————–
#set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) ←コメントアウト
set path = ($HOME/local/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) ←追加行
—————————————–

(エックスサーバーは bash なので .bashrc に↓追記)
—————————————–
export PATH=$HOME/local/bin:$PATH
—————————————–

PATHが通ったことを確認
—————————————–
echo $PATH
—————————————–

mecabのバージョンを確認
—————————————–
mecab -v
—————————————–

なお辞書をインストールしていないとエラーが出る
—————————————–
param.cpp(69) [ifs] no such file or directory: /home/username/local/lib/mecab/dic/ipadic/dicrc
—————————————–

辞書のインストールはこちら

タイトルとURLをコピーしました