dポイントプレゼントキャンペーン実施中!

 自分のPC上では、うまく作動していたのに、サーバにアップしてみるとエラーがでてきます。これってなぜなんでしょうか?
 perlの書き方を変えると動くって聞いた事があります。それってなぜでしょうか。
また、書き換えるコマンド、関数ってだいたい決まってると思うんですが、どういうコマンドが引っかかるんでしょうか?
 困ってます。

A 回答 (6件)

CSVファイルのパーミッションを666にしてみてはどうですか?


644でも動くと思うので、期待薄ではありますが・・・・
どれも、間違っていないとなると厄介ですね。

絶対に動く!スクリプトを一つ組んで、アップロードして
稼動するか確認してみたらどうですか?
それを設定して、動けばプログラム中のコマンドが引っかかっている事になりますし、動かなければ、サーバーの設定に間違いがあると言う事になります。

絶対に動くスクリプトをサンプルで載せておきます。
必要な部分を書き換えてやってみてください。

あと、CGIがリードする、CSVファイルは必ずありますか?
もし、無かったら、ファイルオープン時にエラーになりますよ。(書込みは自動生成される)


********サンプル*******
#!/usr/bin/perl

require 'cgi-lib.pl';

######ファイルオープンチェック#####このブロックは消しても良い

open (FILE,"ファイル名");
flock(FILE,2);

flock(FILE,8);
close(FILE);
#######################################
print "Content-type: text/html\n\n";
print <<"EOF";

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<TITLE>絶対に動く!</TITLE>
</HEAD>
<BODY>
動いたよ!
</BODY>
</HTML>
EOF
exit ;
    • good
    • 0

こんにちわ。

またnovaakiraです。
URL載せておきますといわれましても.....
どこにでしょうね?

あと、確か投稿には自分のページへのURLを
書いてはいけないときいたことがあるのですが.....

ですからCGIスクリプトそのものとその他に必要なファイル
の名前を書いてもらえませんか?
    • good
    • 0

はじめまして。


下の人達が書いたことを繰り返し書くことはやめます。
サーバはどこのサーバを使用しているのですか?
下の人達が書いたことをやってもCGIがエラーを起こすと
いうことは...
1.はじめのラインを
  #!/usr/local/bin/perl
  にしてみる。

2.jcode.plをアップしてないとか。

3.そのCGIと一緒にアップしたファイル・フォルダの
  パーミッション・場所が違うとか。

エラーといってもいろいろあるのでどのようなエラー表示に
なるのか知りたいです。

この回答への補足

いちおう、2については、問題ありません。
パーミッションは、csvデータを多用してます。データはすべて644になっております。
URL乗せておきます。HPでは、サンプルを選択してください。
よろしくお願いします。

補足日時:2001/07/16 21:01
    • good
    • 0

サーバーでエラーが出る原因は以下の通りです。


(1)スクリプト自体のパーミッションが間違っている場合。
  通常CGIは755にします。サーバーによってパーミッションが指定されている場合があるので、確認してください。

(2)スクリプトから書込みをしている、ファイル関連のパーミッション指定漏れ
  CGIから書きこんでいるファイルのパーミッションは666にして下さい。
  又、そのファイルがディレクトリの中にある場合、そのディレクトリのパーミッションは777にして下さい。

(3)Perlのパスの間違い。
  #!/usr/bin/perlや#!/usr/bin/perlとなります。
  これも、サーバーの設定を確認して下さい。

(4)最後に、FTP時の転送モードミス
  PCからCGIファイルを転送する場合、ASCIIモードで転送して下さい。バイナリモードで転送すると、必ずエラーになります。

以上を確認して下さい。

この回答への補足

う~ん、どれも合ってるはず・・・です。

補足日時:2001/07/16 20:13
    • good
    • 0

・プログラムの最初にあるPerlのパスがあっていない


 (#!perl とかいう行)
 #!の後に、Perlのパスを設定してください。
 ホームページサービスの説明書で確認してください。
・パーミッション(属性)が正しくない
 プログラムは755、データは666等に設定してください。

参考URL:http://tohoho.wakusei.ne.jp/wwwcgi2.htm
    • good
    • 0

・ローカル・サーバでのPerlのバージョンの確認。


(サーバの方がバージョンが古くないか?)
・パーミッションの確認
(実行するファイルに実行の権限がついてるか)
・ファイル指定の確認
(絶対パス指定のファイルがないか?)
・Perlのパスの確認
(/usr/bin/perlや、/usr/local/bin/perlとか。)

まずこれを確認してみることをお勧めします。

この回答への補足

バージョンについてなんですけど、ローカルサーバを友人に組んでもらったため不明です。原因はそれなんでしょうか・・・
もしその場合、どうすればいいのでしょうか?

補足日時:2001/07/16 20:15
    • good
    • 0

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