Perlをapacheで動かすときのみ、use mecab が失敗します。


Mac(Lion)にてmecabとPerl用のモジュールをインストールし、ターミナルでmecab単体で動くことを確認し、その後またターミナルでPerlで書かれたサンプルコードを読み込み、動くことを確認しました( perl perltest.pl )。

 そしていよいよapache上で動かそうと思ったのですが( perltest.cgi)、apacheでウェブアプリケーションとして動かそうとしてもMeCab.pmを読み込んでくれません。失敗してエラーになります。

 apacheのコンソールを見るとCan't locate MeCab.pm in @INCとなっているので場所がわからない状態なのかと思います。use mecabをコメントアウトするとちゃんと動くので、間違いなく原因はここかと思います。

 ターミナル上と違い、Perlのモジュールをapacheで動かす場合は何か設定が必要なのでしょうか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/05/11 14:42:24

ベストアンサー

id:studiocherry No.1

回答回数283ベストアンサー獲得回数100

おそらく apache の実行ユーザで、perl モジュールのサーチパスが、設定されていないのだと思います。

perl プログラムの中で、モジュールを呼び出す前に 'use lib' することで、perl モジュールのサーチパスを追加することが出来ますので、以下のようにプログラムを追加してください。

~略~
use lib 'Perl モジュールのディレクトリ';
use MeCab;
~略~

最後に use lib のドキュメントのURL を書いておきます。
http://search.cpan.org/~smueller/lib-0.63/lib_pm.PL

id:susimaki

 ご回答ありがとうございます!
おっしゃるとおりuse lib してみたんですが、変わらないです。根本的に何かがおかしいのか・・・。
 2日間悩んで結局phpの方を利用することにしました。こちらならうまくいきました。申し訳ないです。

2012/05/11 14:42:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません