• ベストアンサー

CGIでの500エラー

CGIサイトを作成中の者です。 CGIをサーバーに転送して動作確認をしたらサーバーエラーになってしまいます。 サーバーに問い合わせて、以下が原因でエラーになっていることはわかりました。 Unrecognized character \x90 at ./miuinit.pl line 100. Compilation failed in require at miumgr.cgi line 11. でもCGI初心者なので、”\x90”が何をさすのか、2番目の文ではどこを直せばいいかわかりません。 サーバー会社では自分でCGIを修正せよとのことです。 よろしくお願いします。

  • yuu78
  • お礼率62% (5/8)
  • CGI
  • 回答数3
  • ありがとう数0

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

  • ベストアンサー
  • maura
  • ベストアンサー率46% (48/104)
回答No.2

miuinit.pl 100行目 @room2 = ("ミントの部屋", "チェリーの部屋", "ライムの部屋"); で、"" ダブルクォーテーションで閉じられてないか、 全角スペースが、ソースコードに含まれている可能性があります。 この行をよく見て修正してみては? または、この行ではなく、前の行かもしれない。

yuu78
質問者

補足

回答ありがとうございます。 確認したところ、部屋番の数が間違っていました。 Compilation failed in require at miumgr.cgi line 11. の方はどうしたらいいかわかりません。 よろしくお願いします。

その他の回答 (2)

  • kmihara
  • ベストアンサー率50% (3/6)
回答No.3

> Unrecognized character \x90 at ./miuinit.pl line 100. > Compilation failed in require at miumgr.cgi line 11. > > でもCGI初心者なので、”\x90”が何をさすのか、2番目の文ではどこを直せばいいかわかりません。 ファイル miumgr.cgi の 11 行目に  require ~~~; と書いてあるはずなので、その行自体か、その行から参照しているファイルに問題があるはずです。参照しているファイルが miuinit.pl だったなら、1行目のエラーが周囲も巻き込んでエラーを起こしています。 これは CGI というより Perl 言語での失敗です。 yuu78 さん自身がプログラマなら Perl 言語の経験をつむか、あるいは得意なプログラミング言語が他にあれば乗り換える、のがいいと思います。 yuu78 さんが CGI 設置専門だとすると、なるべく壊さないように転送するマニュアルを作る -手順をメモして、失敗がどこで起きたか分かるようにする- のがいいと思います。

yuu78
質問者

補足

回答ありがとうございます。 CGIの設置は何回か経験あるものの、細かい言語についてはまだあまりわからない状態です。 なのでどこがエラーなのかがわかりません。。。 今度からは手順はメモしたいと思います。

noname#30287
noname#30287
回答No.1

パーミッションの設定に間違いはないですか? >サーバー会社では自分でCGIを修正せよとのことです これは、当たり前といえばその通りです。 CGI設置は、設置者の自己責任です。 自分で対処できないのにCGI設置は危険です。 ミスでサーバーに迷惑をかけることになります。

yuu78
質問者

補足

回答ありがとうございます。 パーミッションは確認済みです。 他のCGIでは設置成功しています。 チャットのCGIは今まで設置したこと無かったので。。。 自己責任は十分承知しています。

関連するQ&A

  • DBDエラー

    いつも、参考にしております。 Oracleの接続で困ってます。 環境: Windows 2003 Sever DB     :Oracle 10g トライアル版 ActivePerl : V5.8.9 Webサーバ :IISv6.0 CGIのDBIを使って、接続しようとすると 構文チェックで、下記のエラーが発生しております。 Perl lib version (v5.8.3) doesn't match executable version (v5.8.9) at C:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWi n32-x86-multi-thread/Config.pm line 32. Compilation failed in require at C:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/DynaLoader.pm lin e 25. BEGIN failed--compilation aborted at C:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/DynaLoader.pm line 25. Compilation failed in require at C:\oracle\product\10.2.0\db_1\perl\site\5.8.3\lib/MSWin32-x86-multi-thread/DBI.pm line 156. BEGIN failed--compilation aborted at C:\oracle\product\10.2.0\db_1\perl\site\5.8.3\lib/MSWin32-x86-multi-thread/DBI.pm l ine 156. Compilation failed in require at CmFunc.pm line 13. BEGIN failed--compilation aborted at CmFunc.pm line 13. 以上です。ご教授お願い致します。

  • 【エラー】Unrecognized character

    Jcode.plを使いShiftJISで出力しているcgiファイルを、 Jcode.pmを使ってUTF8で出力できるように修正していた所、 Internal Server Errorが発生。 Perl文法チェッカーを使い、エラー内容を調べてみると Unrecognized character \xC2 at test.cgi line 168, line 846. cgiファイル168行には↓ &Jcode::convert(\$val, 'utf8'); ここまで↑ Jcode.pmの846行目には↓ sjis SHIFT_JIS ここまで↑ と表記されています。 cgiファイルの168行が間違っているのはわかるのですが、 「\xC2」が何を指しているのかさっぱりわかりません。 $valの中にあるテキストをutf8に変換したい場合は 本来どう書くものなのでしょうか?

    • ベストアンサー
    • Perl
  • CGIの設置について

    設置後にCGIページを開くと下記の様に表示されてしまいCGIが起動しません。 Software error: Global symbol "$ref_array_hash" requires explicit package name at perl/Cf/Part/Enquete.pm line 870. Global symbol "$ref_array_hash" requires explicit package name at perl/Cf/Part/Enquete.pm line 871. Compilation failed in require at index.cgi line 17. BEGIN failed--compilation aborted at index.cgi line 17. perl/Cf/Part/Enquete.pmの部分は 870|for (my $j=0;$j<scalar(@$ref_array_hash);$j++) { 871| $flag = @$ref_array_hash->[$j]{d_times}; です。 index.cgi line 17.の部分は 17|use Cf::Part::Enquete; と記載されております。 どの部分を訂正すれば動くのでしょうか?

    • 締切済み
    • CGI
  • CGIがエラーになります。

    Kento Webさんで配布されているCGI「Shopping Cart」が Software error: Can't call method "param" on an undefined value at ./lib/menu_list.pl line 310. となり動きません。 **** 経緯 **** これまでは、自宅サーバーCentos6.5で運用していましたが、先日Centos7に入れ替えました。(/var/www/配下はそのまま使用) ・OSインストール後 ・SELinuxの無効化 ファイアウォール停止 ・yum -y install httpd (httpdインストール) ・yum -y install php php-mbstring (php、php-mbstringインストール) ・/etc/httpd/conf/httpd.conf (httpd設定ファイル編集)   Options Includes ExecCGI FollowSymLinks (CGI,SSIの許可)   AllowOverride All (.htaccessの許可)   AddHandler cgi-script .cgi .pl (CGIスクリプト.cgi .plの許可) ・ln -s /usr/bin/perl /usr/local/bin/perl (リンクをはる) この状態で確認するに「Shopping Cart」を含め他のCGIも動きません。 Internal Server Error  BEGIN failed--compilation aborted at  End of script output before headers ネットをググってみるにCGI.pmがインストールされていないようなので ・yum -y install perl-CGI その後確認するに、「Shopping Cart」はNGだが他のCGIはOKとなりました。 「Shopping Cart」のエラー Software error:  Can't call method "param" on an undefined value at ./lib/menu_list.pl line 310. 「Shopping Cart」と一緒に配布されている、「check.cgi」での動作チェックは、CGI.pmインストール前は、Internal Server ErrorでしたがCGI.pmインストール後全てOKとなりました。 パーミッションの確認も行いましたが間違いは無いようです。 よろしくお願いします。

    • 締切済み
    • CGI
  • cgi-libを使って変数値渡しをしたいのですが

    cgi間の変数渡しの質問をしたのですが、うまくいかなかったので、調べてみると、 cgi-lib.pl'を使うことで簡単に値を渡せるということが分かりました。 ですが、 use lib '/home/www'; require 'cgi-lib.pl';# cgi-lib.plを呼び出す $test=1000; # 変数値渡し? form_input_post.cgi?name=$test; &ReadParse(*in); として、$testの値をform_input_post.cgiに渡そうとしたのですが。 コンパイルエラーが出てしまいました。 Can't modify constant item in scalar assignment at form_input_post.cgi line 49, near "$test;" syntax error at form_input_post.cgi line 49, near "$test;" form_input_post.cgi had compilation errors. というエラーです。 初歩的なミスな気がしますが原因がわからないので教えて頂きたいです。 よろしくお願いします。

    • 締切済み
    • CGI
  • まったくわかりません。お手上げです。

    今、CGIでワンクリックアンケートをスタッフに作ってもらっていたんですが、そのスタッフが退職し、CGIの分かる人がいなくなりました。 しかも、そのプログラムには以下のようなエラーが出るのです。 ----- Possible unintended interpolation of @form in string at ./poll.cgi line 108. Unrecognized character \x83 at ./poll.cgi line 222. ----- ----- Can't find string terminator "`" anywhere before EOF at ./poll.cgi line 494. ----- ----- Unrecognized character \x83 at ./poll.cgi line 621. ----- <全ソースはりつけたいのですがひとまずやめておきます(フリーのようですで貼り付けてもいいのかな?)> これだけではわからないものでしょうか?どなたか分かられる方、よろしくおねがいいたします。

    • 締切済み
    • CGI
  • Movable Typeのインストールについて

    Movable TypeをWebサーバーに入れ、Movable Typeシステム・チェック [mt-check.cgi]画面でMovable Typeに必要なコンポネントがサーバーに入っていることをチェックしてOKでした。 そしてmt/index.htmlよりインストールを行おうとしたのですが、 Got an error: Unsupported driver MT::ObjectDriver::DBM: Can't locate DB_File.pm in @INC (@INC contains: C:\***\cgi-bin\mt\extlib lib C:/Perl/lib C:/Perl/site/lib .) at lib/MT/ObjectDriver/DBM.pm line 10. BEGIN failed--compilation aborted at lib/MT/ObjectDriver/DBM.pm line 10. Compilation failed in require at (eval 6) line 1. BEGIN failed--compilation aborted at (eval 6) line 1. とエラーが出てしまいます。mt-config.cgiの設定が間違っているのでしょうか? どなたか教えてください。よろしくお願いします。

  • useとrequireでエラー

    初歩的な質問で失礼いたします。 下記の記述でプログラムを実行すると正常にプログラムが動きます。(省略以降は全く同一のプログラムです) ■実行問題なし1 #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; --------省略--------------- ■実行問題なし2 #!/usr/local/bin/perl use strict; use DBI; --------省略--------------- しかし、下記の記述だとエラーが発生していまいます。 #!/usr/local/bin/perl use strict; use DBI; require 'cgi-lib.pl'; require 'jcode.pl'; --------省略--------------- エラーログは、下記の通りです。 Global symbol "$in" requires explicit package name at search.cgi line 21. Global symbol "$parameter" requires explicit package name at search.cgi line 23. Global symbol "$name" requires explicit package name at search.cgi line 23. Execution of search.cgi aborted due to compilation errors. requireとuseは同時に記述してはいけないのでしょうか? 同時に記述しないと目的のプログラムを実現する方法が大きく変わってきてしまうので、非常に困ってしまいます。 もし、ご存知の方がいらっしゃったら教えてください。 宜しくお願い致します。

  • cgiがうまく動作しません。

    はじめまして。 現在独学でlinuxの勉強をしている者です。検索をしたり本を読んだりして対策を試みたのですがどうしても解決できないため、質問させていただきます。 環境は redhatlinux9 Apache2.0.40 です。 cgiを置いたディレクトリにブラウザでアクセスすると、 Internal Server Error と出てしまいます。 ログを見ると、 [error] 6099: ModPerl::Registry: Can't locate ./jcode .pl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/li b/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/pe rl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i3 86-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_per l /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /var/w ww/cgi-bin/bbs/wforum.cgi line 11.! と表示されています。試しにwforum.cgiの11行目以下の require './jcode.pl'; require './fold.pl'; require './wf_init.cgi'; を require 'jcode.pl'; require 'fold.pl'; require 'wf_init.cgi'; と変更してみたところ、今度は (略)Can't locate fold.pl(略) at /var/www/cgi-bin/bbs/wforum.cgi line 12.! というエラーログが表示されました。 perlプログラムの文法、パーミッション、改行コード、FTP転送の際の転送モードは確認済みのため、問題ないと思われます。また、ここの過去ログを参考にして作成した #!/usr/bin/perl print<<EOF Content-type: text/html <HTML><BODY>CGI works Good.</BODY></HTML> EOF というtest.cgiは動作可能でした。 こういった場合、どのような原因が考えられるでしょうか。どうかご教授ください。よろしくお願いします。

  • CGIエラー

    アクセス解析のCGIを設置しようとしてるのですが、動作確認の際に、以下のエラーが出ます。 The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Can't locate config.pl in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:\daishin_www\cgi-bin\access\accview.cgi line 83. CGIを設置するのはこれが初めてなので、このエラー文が何を言いたいのか、どこを直せば動くようになるのか、ぜんぜんわからずに困っています。 どなたか教えて頂けませんか? サーバーは自社サーバーでWindowsです。

    • ベストアンサー
    • CGI

専門家に質問してみよう