プロが教えるわが家の防犯対策術!

Perl初心者のWEBサーバエンジニアです。
サーバの移行に伴ってCGIファイルが動作していないため、ご相談になります。

【サーバ環境】
perl実行パス      /usr/local/bin/perl
シンボリックリンク   /usr/bin/perl => /usr/local/bin/perl
ソース記述       #!/usr/bin/perl
ヴァージョン      5.8.5
perl実行環境      http://△△△.jp/cgi-bin/

※apacheのスクリプトエイリアス指定
options +ExecCGI -Include
SetHandler cgi-script

上記の環境で、cgiファイルが500internalサーバエラーになる現象が発生しています。
ファイルは以前動作したサーバから引っ張ってきました。
原因を探っていたのですが、cgiファイルのソース記述を

#!/usr/bin/perl -w

と記述を変更すると正常に動作しました。


-w について

【1度しか出現しない識別子や、初期化されずに参照される変数など、危険、無駄と思われる処理の警告を出力します。実際にはもっとたくさんの種類のチェックをするようです。】

と言う事はわかりましたが、いままで、-wなしで動作していたので、-wなしで動くよう、perlの設定を変更したいとかんがえております。

なにぶんPERL初心者ですので、同様の事象で知見がある方、ご教授を宜しくお願いいたします。

A 回答 (1件)

>ファイルは以前動作したサーバから引っ張ってきました


簡単なcgiスクリプトで試すのが先ではないでしょうか。

それで、そのcgiファイルは、FTPでアップロードされたのでしょうか?
アスキーモードで転送されていない場合は改行コードが問題なります。

#!/usr/bin/perl --
これで動作するのなら、サーバの設定でアスキーモードでのアップロードが許可されていないと思います。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。

ご指摘のとおり、アスキーで転送したらうまくいきました。

ありがとうございます。

お礼日時:2009/09/15 16:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!