PHP+Mecabをさくらレンタルサーバーで実行

2008 年 11 月 19 日 – 2:08 AM

形態素解析という文字列の分割をするものがあります。以前から気になっていてWindows版はインストールしたのですが、UNIX版に関しては今までノータッチでした。

そこで今回、このMecabをさくらレンタルサーバーで実行できるようインストールしました。また、PHPからMecabを実行するよう拡張モジュールも同時にインストールします。

  • ※さくらレンタルサーバーのスタンダード以上(telnetができるもの)が対象です

ダウンロード

以下を全てダウンロードします。私は一旦windowsでダウンロードして、ftpでサーバーにUPしました。

インストール

今回、インストールフォルダは、以下のフォルダを作成し、ここに全てのモジュールをインストールしました。以下、ダウンロードしたzipファイルは全てoptディレクトリにUPしてあるものとします。また、ログインユーザ名をusernameとしています。

  • /home/username/opt

Mecabのインストール

  1. cd /home/username/opt
  2. tar zxfv mecab-0.97.tar.gz
  3. cd mecab-0.97
  4. ./configure --prefix=/home/username/opt
  5. make
  6. make check
  7. chmod z+x install-sh
  8. make install

インストールが完了したら、以下のコマンドで簡単なテストが可能です(ヘルプが表示されます)。

  • /home/username/opt/bin/mecab -h

Mecab辞書のインストール

  1. cd /home/username/opt
  2. tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
  3. cd mecab-ipadic-2.7.0-20070801
  4. ./configure --prefix=/home/username/opt --exec-prefix=/home/username/opt
    --with-mecab-config=/home/username/opt/bin/mecab-config
  5. make
  6. make install

他のサイトの方はmecab-configなどは指定しなくてもインストールできているようですが、私の環境ではconfigure実行時に--prefix、--exec-prefix、--with-mecab-configと3つの引数を指定しないとうまくインストールができませんでした。

また、--with-charset=utf8などのように文字コードの変更を設定できるようなのですが、私の環境ではこの設定もうまくいかずデフォルトのEUCのままになっています。まぁ、このあたりはエンコードで処理可能なのでとりあえずはこのままで進めます。

php-mecabのインストール

php-mecabのインストールは若干苦戦しました。まずphpizeというコマンドが通らない。これはphpのbinまでのパスを全て指定することで実行可能です。

  • cd /home/username/opt/php_mecab-0.3.0
  • /usr/local/php-5.2.6/bin/phpize

しかし、phpizeを実行すると今度はautoconfが見つからないというエラーが出ます。この解決にはログインシェルの設定ファイルに環境変数を設定することで解決しました。

  • vi /home/username/.cshrc
  • ※以下の環境変数を追加
    • setenv PHP_AUTOCONF /usr/local/bin/autoconf259
    • setenv PHP_AUTOHEADER /usr/local/bin/autoheader259

設定ファイルを編集し終わったら環境変数を設定し直します(もしくは再ログインでもOK)。

  • source ~/.cshrc

これでphpizeを実行すればconfigureファイルが作成されるようになります。

  • /usr/local/php-5.2.6/bin/phpize (今回は成功)

続いてconfigureを実施します。

  • ./configure --with-php-config=/usr/local/php-5.2.6/bin/php-config --with-mecab=/home/username/opt/bin/mecab-config

他のサイトの方は引数を指定しないでも通るようですが、私の環境では辞書と同様引数がないと通りませんでした。以上の手順をふまえ、php-mecabのインストール手順をまとめると次の通りです。

  1. シェル設定ファイルに環境変数をセット
    1. vi /home/username/.cshrc
    2. setenv PHP_AUTOCONF /usr/local/bin/autoconf259
    3. setenv PHP_AUTOHEADER /usr/local/bin/autoheader259
  2. source ~/.cshrc
  3. cd /home/username/opt
  4. tar zxfv php_mecab-0.3.0.tgz
  5. cd php_mecab-0.3.0
  6. /usr/local/php-5.2.6/bin/phpize
  7. ./configure --with-php-config=/usr/local/php-5.2.6/bin/php-config
    --with-mecab=/home/username/opt/bin/mecab-config
  8. make
  9. make install

以上でphp-mecabnのインストールは完了です。

php.iniの設定

php-mecabは拡張モジュールとして読み込む必要があり、拡張モジュールの設定はphp.iniに記述します。しかし、レンタルサーバーの環境では大元のphp.iniファイルを編集することはできません。

さくらのレンタルサーバーでは、各ユーザが独自のphp.iniの設定をできるようになっているのでそのphp.iniにmecabの設定を記述します。

  1. 会員メニューにログインし、サーバー設定のページを表示
  2. [アプリケーションの設定]の[php設定の編集]を開く
  3. php.iniファイルパスに以下のパスを記述し[保存する]を選択
    1. extension_dir=/home/username/opt/php_mecab-0.3.0/modules/
    2. extension=mecab.so

以上でphp.iniの設定が完了します。これでphpからMecabを利用可能になります。

サンプルの作成

phpを用いたMecabのサンプルを作成しました。

サンプルはこちら

  • はてなからrssを取得
  • rssの中身を解析
  • 解析結果を表示

Mecabを使うことで最新の記事情報を解析して人気キーワードのデータを集めたり、SEOなどに利用できそうです。こんなにすごいものをフリーで提供していただいて本当に感謝したいです。

<参考>

Post a Comment