プロが教える店舗&オフィスのセキュリティ対策術

さくらのサーバーでwww配下のcgiを使用し、サーバールートのファイルを表示

ルートディレクトリ(wwwフォルダと同じ階層)にテキストファイルを設置し、
www配下に設置したcgiをブラウジングした際に、テキストファイルの内容を表示する仕組みを作ろうとしています。

別のサーバーでは動いているようですが、
なぜかさくらでは変数の値が表示されません。(<hr>は表示されています)

ちなみにcgiのファイルとフォルダのパーミッションは755に設定しています。

わかる方いらっしゃいますでしょうか?
よろしくお願いします。


cgiのソースは下記になります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#! /usr/bin/perl

open (FILE, "</home/txt1.txt");
$lst = <FILE>;
close(FILE);

open (FILE, "</home/txt2.csv");
$dat = <FILE>;
close(FILE);

print <<END;
Content-Type: text/html; charset=Shift_JIS

<html>
<head>
<title>testcgi</title>
</head>
<body>
$lst
<hr>
$dat
</body>
</html>
END
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

A 回答 (3件)

>恐れ入りますが、openの成功・失敗の記述方法を教えて頂けないでしょうか?


open(FILE,"filename") || die "I can't open this file";
die 演算子は perl の初歩の初歩。

>パスはあっていました。
No.2さんの言う通りだと思うんですが、もう面倒くせぇから相対パスで指定すれば良いんじゃね?
    • good
    • 0
この回答へのお礼

相対パスでいけました、ありがとうございます!

>die 演算子は perl の初歩の初歩。
勉強しておきます!

お礼日時:2010/06/19 01:03

>パスはあっていました。



まず間違いなく間違ってますけど、どうやって「あっている」と判断しましたか?
「wwwフォルダ云々~」ということは専用サーバでなく共用サーバなんですよね?
/home/txt1.txt でなく、 /home/ユーザ名/txt1.txt では?
    • good
    • 0
この回答へのお礼

>まず間違いなく間違ってますけど、どうやって「あっている」と判断しましたか?
僕の常識で判断してました、すみません!
なるほどユーザー名が必要なのですね!

サブドメインのサーバーで、ftpでアクセスしているせいか
/home/ユーザ名/txt1.txtではアクセスできませんでした。。

相対パスでアクセスしてみたらうまくいきました。

お礼日時:2010/06/19 00:56

>open (FILE, "</home/txt1.txt");



この通り書いてるのですか?それだとパス名が間違ってますけど。
正しいパス名を書いてください。
あと、openの成功・失敗をチェックしてないのもおかしいです。
    • good
    • 0
この回答へのお礼

notnotさん回答ありがとうございます。

パスはあっていました。
>>ルートディレクトリ(wwwフォルダと同じ階層)にテキストファイル
すみませんこの文章が間違えていました。
正しくは、/home/txt1.txtと/home/txt2.csvでした。

恐れ入りますが、openの成功・失敗の記述方法を教えて頂けないでしょうか?

よろしくお願い致します。

お礼日時:2010/06/18 22:36

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