• 締切済み

CGIが実行できません。

perl超初心者です。 といっても、実行権を付け忘れるほどの初心者ではありません。 作成したCGIが、あるサーバでは正常に動作するのに 他のサーバだとエラーになってしまいます。 エラーログが見れないため原因がわからず、 想像もつかないしで困っています。 サーバの設定などで変わってくるのでしょうか。 関係あるかどうかわかりませんが、 CGIではsystem()など使用しています。 意味もよくわからずソースを真似ているのですが、 $query_form = new CGI;などもやっています。 あとは取り立てて特別の処理はしていないのですが。。 どなたかご存知の方がいらっしゃいましたら ご回答よろしくお願いいたします。

みんなの回答

  • misoka
  • ベストアンサー率35% (56/160)
回答No.3

はじめの一歩としては、コンパイルエラーがないかどうか 確認してみては? と思います。 $ perl -cw hoge.cgi というように、cwオプションをつければ確認できます。 CGI.pmなどのモジュールが原因の場合だったら、 (その他、perlのバージョンなどの場合も) これでひっかかるはずです。 systemでなにをしているか分かりませんが、 つかっているコマンドが、そのサーバにはない場合、 (パスに含まれていない場合)がありえます。 UNIX系のサーバであるなら、コマンドがあるかどうか $ which hoge のように、whichをつかって確認してみるとよいと 思います。 また、オプションの指定の仕方も、helpオプションなど 使えそうな手段で確認してみて下さい。 ただし、systemの場合、やっている内容が原因のことも あるので、コマンドはあるし、オプションも正しいから といって、これが原因ではない、とは限りません。 何にしても、情報がほとんどないので、原因をつかむのは ほぼ不可能です。 でも、だからといって、全ソースをコピペしろ、 という積もりもありません。 部分的にソースにアヤしそうなところがあるなら、再度 お知らせ下さい。 また、サーバが何であるのか等の情報も重要です。

  • ally0417
  • ベストアンサー率33% (2/6)
回答No.2

perlの位置は合ってますか? cgiの一番最初にperlの場所を指定するかと思いますが、 そのpathがperlのインストールされている先と違うようなら動きません。 他のサーバでは正常に動作するとの事なので、一度確認その部分を確認されてみては どうでしょうか? ちなみに、perlの場所は #which perl とたたけば所在を教えてくれます。

回答No.1

サーバが変わったら、動かなくなったとの事ですが、 パーミッション関係ではないとすれば、多分モジュール関係だと思います。 useとかrequireで何か呼び出しているでしょうか。 その辺を確認してみたらどうでしょうか。

関連するQ&A