今日は、過去にあったperlで書いたcgiのエラーについて。
perlの動くがサーバであれば、cgiはとても便利です。
もちろんpythonで書いても良いんですが、今回はperlのお話。
pythonネタはまた別の機会に。
まず前提として、cgiを動かすサーバはCentOSです。
で、前にcgiをいざ動かそうとしたら、Internal Server Error応答。
ま、とりあえず、権限とか見てみます。
cgiファイルは、
で実行権限与えておきましょうね。
で、権限の問題じゃない、てなった時は、とりあえずお約束どおりエラー内容を確認しましょう。
WebサーバがApacheなら、
/var/log/httpd/配下にerror-logが吐き出されているはずです。
もしくは、
/etc/httpd/logs/
でもOKです。(/etc/httpdの構成であれば)
で、確認すると、以下のようなエラーログが。
line 3.
はモジュールを読み込んでいる箇所です。
エラー内容は、
Can’t locate モジュール名 in @INC
つまり、モジュールが読み込めないぜ、オラオラオラオラオラ!って感じで、
怒られてます。
怖いですね。
なので、モジュールがないのか恐る恐る確認してみます。
って打てばOKです。
そうすると、
Can’t open perl script “HTTP::Request::Common”: そのようなファイルやディレクトリはありません
うん、やはりないですね。すみません、すみません。
コマンドから対話式で確認しても良いです。
って打てば、エラーログに出ていたのと同じ
Can’t locate モジュール名 in @INC
て返ってくると思います。
さ、では、モジュールをインストールしましょう!
yumでできます。便利ですねー、本当に。
これだけ。
あとは、モジュールに依存関係のあるモジュールも一緒にインストールされます。
新しいサーバでcgi動かすぞ、ってなった時なんかは忘れがちでやってしまう内容でした。
てな感じで、お疲れ様でしたー。
|