• ベストアンサー

CGIがうまくアップできない(500エラー)

http://hfm-kenchan.com/Lesson/sampl/diary0.txt 上記のCGIをアップしましたが、500エラーが出ます。 本来なら &check=ok& &message=2009年06月21日 (日) 22時19分 44444 -------------------------------- 2009年06月16日 (火) 14時07分 asssaa -------------------------------- 記事は以上です。& となるはずです。 エラーの原因を教えていただけないでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

perlのCGIプログラムが実行できない場合の原因はたいてい次のようなものです。 (元々CGIが使えないサーバは別にして) (1)構文エラー  -w スイッチで確かめてみましょう。 (2)perlインタプリタのパス不正  たいがいのサーバは、#!/usr/bin/perl、#!/usr/local/bin/perl、どちらでも良い、のいずれかです。 (3)改行コード不正  サーバがUNIX系OSなら 0x0A です。Windows(DOS)の 0x0D0x0A、MACの 0x0D のままでは 1行目に書いたperlを見つけられずエラーになります。  Windows、MACのパソコンからアップロードするなら、改行コードを 0x0A に変換してから転送するか、FTPのASCII(TEXT)モードでアップロードします。 (4)アクセス権(パーミッション)不正  今のレンタルサーバはほとんどがユーザ権限で動くように設定されていますから 700 で良いはずです。これでだめなら、701か、705 にしてみてください。 (5)requireするライブラリ、useするモジュールがあるべきところに無い、または壊れている。 (6)まれに、.htaccessファイルでCGIを使うための設定が必要なサーバがあります。

nkmyr
質問者

お礼

返答をありがとうございます。 perlパスとパーミッションを変更したら表示出来ました。 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nrb
  • ベストアンサー率31% (2227/7020)
回答No.1

500: Internal Server Error サーバ内部エラー。サーバ内部にエラーが発生した場合に返される。 例として、CGIプログラムに文法エラーがあったり、設定に誤りがあった場合などに返される。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FlashQ&A(サンプル作品集)の憲ちゃん様作成のCGIについて

    FlashQ&A(サンプル作品集)の憲ちゃん様の http://hfm-kenchan.com/Lesson/log_qa/D0703261.htmの Flash連動のフォームメールを使わせて頂いているのですが、 webform_flas01.cgiに、自動返信機能を追加したいと思っています。 sub sendmail { ~~省略~~} をもう一つコピーして、片方の宛先と差出人の部分を逆にしたら、今度は送られてくる方のメールが届かなくなりました。 どなたかCGIに詳しい方是非教えて頂けないでしょうか? 使用環境はWindoesXP SP2 Flash8です。よろしくお願いします。

    • ベストアンサー
    • CGI
  • SESULinux で CGI をするには?

    http://oshiete1.goo.ne.jp/qa3578211.html で質問していた、初心者です。再び、お願いいたします。 LAN の 中だけで Web サーバ を実行しています。 SUSELinux 10.1 OSS の ・・・/htdocs/cgi-bin というディレクトリで *.cgi が動くようになりました。 ところが、このディレクトリに、置いた *.html ファイルを別のコンピュータから見ようとすると、Internal Server Error となってしまいます。 Apache の error_log では、 (8)Exec format error: exec of '/srv/・・・/*.html' failed そして、 Premature end of script headers: *.html となっています。 この *.html を htdocs というデレクトリに置くと、OK なのですが...。 また、*.cgi ファイルに open(FILE, '>>aaa.txt') or die "$!"; print FILE ("200,$year年$mon月$day日 $hour時$min分\n"); close(FILE) と書くと、WindowsXP, Apache, ActivPerl では、 自動的に、aaa.txt というファイルができて、 そのファイルに 「200,日付時間」 が 書き込まれたのですが、 SUSELinux 10.1 OSS の ・・・/htdocs/cgi-bin では、 だめでした。これが、できると、大助かりです。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • 「CGIプログラムエラー」って何ですか?

    Win.MEを使ってます。 今まで見れていたサイトがある日突然見れなくなり、以下の画面になるのですが、どうしたらまた見れるようになるでしょうか? すみませんが、素人にもわかるような説明でお願いします。 ***************************************************** 500-Internal Server Error CGIプログラムエラーのため表示することが出来ません。 多くの場合、以下のような理由が考えられます。 ・ パスの指定間違い perl のパスは /usr/bin/perl です。 ・ パーミッション(権限)が正しく設定されていません FTPソフトなどで、パーミッションを適切に設定してみてください。 ・ スクリプトの改行コードに問題があります ファイルの転送時はアスキーモードで転送して下さい。 ・ スクリプトの記述に誤りがある可能性があります 文法チェック等を行ってください。 上記が正しい場合、以下のような理由が考えられます。 ・ サーバーへの負荷が高いため実行できないCGI 負荷が高いスクリプトは、自動的に処理が中断されてエラーとなる場合があります。 ・ 混雑時等、サーバー全体の負荷が高くなっている状態 時間をおいてから再度アクセスしてください。

  •  文書を作成してもサーバーはエラー (CGI超超初心者)

     よろしくお願い致します。  現在の状況を説明しますと  ●アパッチという仮サーバーをインストールして        ↓  ●10日で憶えるCGIという本のソースをそのまま   入力してネットにアドレスを入力して        ↓  ●きちんと動作するか確認する。  という作業をしていますが、何故かアドレスを入力して「さ~動くかな?  」と確認してもエラー表示がされるのです。今まではなんとか進んできて  たんですが。。。  自分の入力ミスかな、とくさる程確認をして、入力しなおしてもエラーが  表示されてしまいます。  どういうミスがあるのか、それ自体が分からない状況です。    ●拡張子はきちんとCGI●保存場所も本の通り、  申し訳ございません、助けて頂けると嬉しいです。ちなみに他の方の書き込  みが全く理解できません、宜しくお願いします。  ソースです。 #! c:/perl/bin/perl # ファイルの読み込み open(FILE, "./diary.txt"); @data = <FILE>; close(FILE); # サーバー出力 print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head><title>ファイルの読み込み</title></head> <body> <p>$data[0]</p> <p>$data[1]</p> <p>$data[2]</p> </body> </html> END

    • ベストアンサー
    • CGI
  • 「CGIプログラムエラー」って何ですか?

    Win.MEを使ってます。 今まで見れていたサイトがある日突然見れなくなり、以下の画面になるのですが、どうしたらまた見れるようになるでしょうか? もう3ヶ月位この状態です。 すみませんが、素人にもわかるような説明でお願いします。 ***************************************************** 500-Internal Server Error CGIプログラムエラーのため表示することが出来ません。 多くの場合、以下のような理由が考えられます。 ・ パスの指定間違い perl のパスは /usr/bin/perl です。 ・ パーミッション(権限)が正しく設定されていません FTPソフトなどで、パーミッションを適切に設定してみてください。 ・ スクリプトの改行コードに問題があります ファイルの転送時はアスキーモードで転送して下さい。 ・ スクリプトの記述に誤りがある可能性があります 文法チェック等を行ってください。 上記が正しい場合、以下のような理由が考えられます。 ・ サーバーへの負荷が高いため実行できないCGI 負荷が高いスクリプトは、自動的に処理が中断されてエラーとなる場合があります。 ・ 混雑時等、サーバー全体の負荷が高くなっている状態 時間をおいてから再度アクセスしてください。

  • [error] [client ---- ] Argument

    初心者で http://oshiete1.goo.ne.jp/qa5056638.html で質問した者です。もうひとつ、お願いします。 Apache の error.log に [error] [client ---- ] Argument "..." isn't numeric in addition (+) at ... 0001.cgi line 85., と表示されるのを、防ぐ方法をお教えください。 ↓このようにしています。 open(FILE, '<+score.txt') or die "$!"; my @data = <FILE>; close(FILE); my $data2 = $data[0] +1;#------------- line85 open(FILE, '>+score.txt') or die "$!"; print FILE $data2; print FILE (",問題番号,$num,$year年$mon月$day日 $hour時$min分$sec秒\n"); print FILE @data; close(FILE); print "<font size=+1>今日 "; print "<font color=magenta>$data2</font color>";print "回 正解解答をしました --- </font size> "; 1時間に、0001.cgiと同じように書かれれたファイル約100個に、約40人がアクセスします。Apache の error.log が、すぐ大きくなってしまいます。どうか、よろしくお願いします。

    • ベストアンサー
    • Perl
  • cgiとhtml

    #!/urs/bin/local/perl use CGI qw(:standard); use Date::Calc qw(:all); $year = param('year'); $mon = param('mon'); if ($year or $mon){ #年、月がないとエラー if (!$year){ &error(100,'年、月を入力して下さい。'); }elsif(!$mon){ &error(110,'年、月を入力して下さい。'); } #年は1以上、月は、1~12の範囲 #紀元前は計算しない if($year < 1){ &error(120,'年に誤りがあります。'); } if($mon < 1 or $mon > 12){ &error(130,'月に誤りがあります。'); } #カレンダーの計算 $cline = Calendar($year,$mon); #先頭行と最終行をとる $cline =~ s/^\n//; $cline =~ s/\n$//; #改行区切りで分割 @Cal = split(/\n/,$cline); #まず、年、月をテーブルに入れる $CAL.=<<"EOL"; <table border="1"> <tr> <td colspan="7" align="center">$year年$mon月</td> </tr> EOL #曜日をテーブルに入れる $CAL.=<<"EOL"; <tr> <td>日</td> <td>月</td> <td>火</td> <td>水</td> <td>木</td> <td>金</td> <td>土</td> </tr> EOL #日付をテーブルに入れる for($i=2; $i<=$#Cal; $i++){ $CAL.= <<"EOL"; <tr> EOL $shift=3; #1日に3文字文使う $s = 0; for ($j=0; $j<7; $j++){ $day = substr($Cal[$i], $s, $shift); if($day !~ /\d/){ $day = '&nbsp;'; #数字がなければスペース }else{ $day =~ s/ //g; #余分なスペースをとる } $CAL.=<<"EOL"; <td align="right">$day</td> EOL $s += $shift #3文字を右へ $s += 1; #2回目からは、区切り文字も計算 } $CAL.=<<"EOL"; </tr> EOL } $CAL.=<<"EOL"; </table> EOL } print <<"EOL"; Content-type: txet/html というプログラムを作ってカレンダーを表示させたいのですが、 HTMLで打つときに <html> <head> <title>カレンダー</title> </head> <body> <from action="report.cgi"> 年:<input type="text" size="4" name="year"> 月:<input type="text" size="2" name="mon"> <br> <input type="submit" value="表示"> </from> <br><br> $CAL(と入れたのですが、画面に%CALと出るだけでカレンダーが表示されません) </body> </html> 何を入れると画面ににきれいにカレンダーが表示されるのでしょうか?

    • ベストアンサー
    • CGI
  • Flashで四角い図形で切り替わる写真の動き

    書き込みさせていただきます。 よろしくお願い致します。 教えてgooのグラフィックソフトに書き込みしたのですが Flashの板がありましたので、こちらに移動させていただきます。 ※回答はいただけませんでしたので、質問は削除しました。 3月9日に下記掲示板に書き込みして質問させていただきましたが 自分の質問のしかたが良くなかったからかもしれませんが 回答が得られなかったので、こちらに書き込みさせていただくことにしました。 http://hfm-kenchan.com/cgi/flash_qa.cgi 最近Flashを初めたばかりの初心者ですが 緊急で必要になり猛勉強中しております。 下記アドレスのフラッシュのような動きを作成したいのですが どうしてもできなくて、困っています。 ※写真と写真が四角の図形で移り変わるところです。 http://www.huhs.ac.jp/ マスクでつくれるのかと思い 写真を配置してマスク。アルファを設定する。 写真を配置してマスク。アルファを設定する。 という作業を繰り返して敷き詰めましたが 上記アドレスのような動きにはならなかったです。 どのようにすれば似たような動きができますか? よろしくお願い致します。

    • ベストアンサー
    • Flash
  • システム手帳

    通常。日本のカレンダーは日・月・火・水・・・ですが、 システム手帳の月別Diaryは、ほとんど月・火・水(月曜はじまり)になっています。 一部、日曜はじまりもたまにありますが、見にくくありませんか? 毎年さがすのに苦労しています。 なぜ、日曜ではなく、月曜はじまりなんでしょうか? 来年分はたまたま昨日見つけたので(もう発売されていた!)苦労しなくていいようです。(^^)v

  • きょうだけのデータのみ取得したい

    アクセス解析のようなCGIを作っています。 logfile.dat→ACCESSFILE 2006年08月30日(水)06時59分51秒 6×.36.32.141 http://×××/menu.htm 2006年08月30日(水)04時59分51秒 6×.36.32.185 http://×××/menu.htm 2006年08月29日(火)08時00分51秒 62.36.30.143 http://×××/menu.htm 2006年08月28日(木)09時00分51秒 64.36.32.145 http://×××menu.htm ↓プログラム @accesslog = <ACCESSFILE>; #***** 各時間の件数を求める ***** foreach $rec ( @accesslog ) { $jikan = substr( $rec, 18, 2 ); $param{ $jikan }++; } ************************************************** 上記では全件表示されてしまいます。 今日が30日だとしたら30日分だけデータを取得する にはどうすればよろしいでしょうか?

    • ベストアンサー
    • Perl
プリンターへのPCからの接続
このQ&Aのポイント
  • 無線LANルーターを交換したところ、プリンターに接続できなくなった問題について相談します。
  • Windows 11を使用しており、無線LAN経由でプリンターに接続しています。しかし、無線LANルーターを交換したことで接続ができなくなりました。
  • 質問はブラザー製品に関するものです。
回答を見る