電子書籍の厳選無料作品が豊富!

下記のような簡単なスクリプトなんですが、なぜかサーバーにアップすると動きません。
ローカルでコマンドプロンプトから直接実行するとまともに動作します。
パーミッションは「755」と「705」でやってみましたが。

perlのパスは合っていますし、実際同じ場所に置いた他のCGIは動作します。


#!/usr/bin/perl

open (DT, "<./data/***/***.csv") or die "File '***.csv' Open Error.";
@data = <DT>;

$data[0] = ",,,,,,\n";

open (OUT,">./data/***/***1.csv") or die "File '***1.csv' Open Error.";
print OUT @data;

close (DT);
close (OUT);

原因が分からず困っています。

解決策でなく、原因と思えるだけの回答で結構ですので何卒よろしくお願いいたします。

A 回答 (3件)

CGI が HTTP サーバーから実行されるときの Owner が、実行ディレクトリに


対するファイル作成の権限(Permission)を持ってないのでは?
    • good
    • 0
この回答へのお礼

ありがとうございました。

スクリプトに実行後の処理を記述していなかったので500エラーになっていました。
500エラーだったので実行していないとばかり思っていたのですが実行はされていました。

お礼日時:2011/01/22 18:14

CGIの最初の行には、これを書くのが常識ですな。



print "Content-type: text/html\n\n";
    • good
    • 0

>下記のような簡単なスクリプトなんですが、なぜかサーバーにアップすると動きません。


一番の解決の糸口はエラーの内容です。

ブラウザで見て500エラーなら、スクリプトに何らかの問題があると考えられます。
それともし見れるならエラーログを確認しましょう。エラーの詳細が書かれているはずです。それを示すなりするとより良い回答が得られるかもしれません。

ただ単にアップロードのミスだった、というのも意外とやりがちなので確認するとよいかもしれません。
    • good
    • 0
この回答へのお礼

>ブラウザで見て500エラーなら、スクリプトに何らかの問題があると考えられます。

ありがとうございました。
確かに500エラーだったので実行していないとばかり思っていたのですが、スクリプトに実行後の処理を記述していなかったため500エラーの表示になったようです。

ご指摘通りスクリプトの問題でした。

お礼日時:2011/01/22 18:10

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