• ベストアンサー

@PAGESのCGIについて

@PAGESに登録してみて簡単なcgiをrubyで書いたのですがエラーになり通りません 本当なら@PAGESの掲示板に書くべきなのでしょうが凍結されていて書きこめませんでした わかる方助言をいただけるとありがたいです #!/usr/local/bin/ruby print "Content-type: text/html\n\n" print "Hello World" 拡張子はcgiにしてパーミッションは755です

  • CGI
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.2

もしかして content-type を書かないで私の書いたコードだけ入れてないでしょうね? Hello World のところだけ変えるんですよ。

kroton
質問者

お礼

回答ありがとうございます。 問題は文字コードにあったようです。 わたしはterapadで編集していたのですが保存文字コードが「UTF-8」になっていました。 これを「UTF-8N」に変えるとちゃんと動きました。 またメモ帳などで作った場合もちゃんと動きました。 大変お手数をかけましてすいません。

その他の回答 (1)

  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

content-type が text/html なのに、内容が HTML でないからです。 print "<html>Hellow World</html>" なら OK でした。 ちなみに、わからないときは @Pages のお問い合わせフォームから訊くといいでしょう。

kroton
質問者

お礼

回答ありがとうございます アドバイス通りにしてみたのですがまだエラーがでます・・・

関連するQ&A

  • cgiが動きません。。。

    つい最近、perlを勉強し始めた超初心者です。 ローカル(?)でcgiを作成したり、動かしたりしていたのですが、ホームページを開設してみようと思い立ちました。 早速、開設はしたものの、問題のcgiがまったく動いてくれません・・・ プロバイダはbiglobeです。まず、テスト用として「kantan.cgi」を用意しました。中身は #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "Hello world\n"; exit; です。ローカルではきちんと表示されます。 biglobeのwebFTPで「/public_html」に転送後、パーミッションを755に変更しました。 「http://www7a.biglobe.ne.jp/~*****/kantan.cgi」を開くと、「ページを表示できません」と表示されてしまいます。 「HTTP 500 - 内部サーバー エラー 」と書いてありますが、私には何のことだかサッパリわかりません。 アドバイスをいただけると助かります。よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGI設置時に500エラーになります

    CGIを設置しようとしたところ、500 Internal Server Error になります。 共用サーバーIDを使用しています。 CGIファイルは「cgi-bin」の中に入れています。 たとえばこんな簡単なCGIでテストしたのですが、500 Internal Server Errorになってしまいます。 ↓ #!/usr/local/bin/perl print "Content-type: text/html \n\n"; print "Hello"; #!/usr/local/bin/perlを #!/usr/bin/perlにしても結果は同じです。 (サーバーの指定は#!/usr/local/bin/perl) パーミッションは755にしています(705に変えてもダメでした)。 CGIファイルの改行コードはLFにしており、テキスト(ASCII)モードでアップロードしています。 それでも500 Internet Server Errorになります。 サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?

  • サクラのレンタルサーバーです。CGIが動きません

    サクラのレンタルサーバーを借りました。 早速CGIを試そうと思ったのですが、原因不明のInternal Server Errorが出ます。 cgi-binはいらないとのことですので、wwwにそのまま入れました。 index.htmlも同じ場所にありそれは出ますのでパス間違いではないです。 またパーミッションも777にしてみましたが駄目です。 #!/usr/local/bin/perl print "Content-Type: text/html\n"; print "\n"; print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; こんな感じで、TELNETでログインして実行も出来ます。 bash-2.05b$ ./index.cgi Content-Type: text/html <html><body>abc</body></html>bash-2.05b$ いろいろ調べたのですが ◆パーミッション→OK ◆TELNETで実行してみる→OK ◆perlへのパスは?→/usr/local/bin と /usr/bin どちらでもいいそうです。験しに変えましたが状況変わらず。 何か気が付いたことがあれば教えてください

    • ベストアンサー
    • CGI
  • レンタルサーバーでrubyプログラムが動きません

    レンタルサーバーでrubyプログラムをアップロードしても画像のような?マークが出て認識してくれないようです。 どのようにすれば動くようになりますでしょうか。 アップロードした時の条件は以下のとおりです。 FTTPでアップロード 転送モード:アスキー転送モード 転送時のファイル拡張子・・・.rb #!/usr/local/bin/rubyを最初に記述(レンタルサーバーページの指定通り) 転送後のパーミッション:705 その他に何をすればよいかわかりまん。 教えていただけませんでしょうか。 ちなみにコードは下記のような簡単なものです。 #!/usr/local/bin/ruby print "Content-Type: text/html\n\n" print "hello!" よろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • cgi-lib.plのオフラインでの使用

    cgiの勉強をしています、Foolisともうします。 タイトルの通り、cgi-plをオフラインで使用したいのですが、やり方がわかりません。 今、httpdを使用して、 http://127.0.0.1/hello.cgi にアクセスしたら、(hello.cgiは以下の通り) ______________________ #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML><BODY>\n"; print "<H2>Hello! WORLD</H2>\n"; print "</BODY></HTML>\n"; exit; _____________________________ ちゃんとHello! WORLDと表示します。 form.htmlおよび、form.cgiを http://www.try-net.or.jp/~tanukiti/hp-add/cgi_learning/kl_cgi_09.html ここのページのように入力し、ファイルを作成したのですが、上手く動きません。もし解決策をご存知の方がいましたらよろしくおねがいいたします。

    • ベストアンサー
    • Perl
  • cgi(perl)でパラメータが渡せない

    以下のプログラムでnum=9が伝わらないので、ミスをご指摘ください。 グラフィカルなアクセスカウンタを表示させようとしていますが うまくいかないのでテキストモードでデバッグしています。 [ /usr/local/apache2/htdocs/gif-view.html ] <html> <head> <meta http-equiv="Content-type:" content="text/html; charset=UTF-8"> <title>gif-view</title> </head> <body> <iframe src="/cgi-bin/gif-test.cgi?num=9"></iframe> <!-- <img src="/cgi-bin/gif-test.cgi?0" width=50 height=50> --> </body> </html> [ /usr/local/apache2/cgi-bin/gif-view.cgi ] permission は 755 にしています。 #!/usr/bin/perl print "Content-Type: text/plain;\n\n"; print "gif-test.cgi\n"; $prm0 = @ARGV[0]; if($prm0 = "") { print "Param is exist\n"; } else { print "Param is empty\n"; 実行結果として gif-test.cgi Param is empty となります。 httpd.conf で Script Alias /cgi-bin/ "/usr/local/apache2/cgi-bin/" を有効にしています。

    • ベストアンサー
    • Perl
  • RubyでCGIが動きません。

    RubyでCGIを作ってApacheを使ってアプリの練習をしようとしていますが、CGIのお置き場所かApacheの設定かCGIの書き方が悪いのかIEで動かすとCGIの内容を中途半端に実行して下記のようになってしまいます。 #!/ruby/bin/ruby -Ks print "Content-type: text/html\n\n" print "" print "" print "" print "" print "こんにちは、Ruby!" print "" CGIのソースは #!/ruby/bin/ruby -Ks print "Content-type: text/html\n\n" print "<html><head>" print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">" print "<title>RubyでCGI</title></head>" print "<body>" print "こんにちは、Ruby!" print "</body></html>" 一番簡単なプログラムだと思うのですが、どこがいけないのでしょうか。ちなみにOSはVISTAです。 ちょっと気になるのはApacheMonitorServerが動かないこともあります。タイトルにはErrorと出ますが、メッセージでは「この操作を正しく終了しました」と出ます。 ちなみにApacheは動いてます。LocalHostで確認できました。 どなたかどうすれば良いのか教えて頂けないでしょうか。 よろしくお願いします。結構長い時間悩んでいます。

    • 締切済み
    • CGI
  • CGIファイルの送り方教えて下さい

    はじめまして!超初心者です。 最近CGIを本を見ながら勉強しているんですが ファイルの送信の仕方が分かりません。やはり HTMLファイルとは送信の仕方が違うのでしょ うね?誰か教えて下さい。 (FTPソフトはFetchです。) ちなみに送りたいファイルは --------------------------------- #!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<H1>Hello!</H1>\n"; print "</HTML>\n"; --------------------------------- です。

    • ベストアンサー
    • CGI
  • ApacheでCGIが正しく動かない。

    RedHatLinux8をインストールして、 Webサーバーを立てよう~と思い立ててみました。 Apache2.0.40です。 一応htmlファイルはのぞけるようになったんですが、 CGIがちょっとおかしくて・・・ #!/usr/bin/perl print "Content-type: text/html\r\n\r\n"; print "Hello, World."; ↑を書いたtest.plはHello, Worldとちゃんと表示されました。 しかし、掲示板・カウンターを開くと・・・ 「ログファイルを開くことができません」 という主旨のメッセージが表示され、正しく実行できません。 ./log.txt とちゃんと指定しているんですが・・・ そのログファイルを開くとサーバーがCGIをして認識しているらしく、 「InternetServerError」が出て開けない・・・。 CGIの属性は755 ログも緩くして755に設定しました。 それでも状況は変わりません。

  • rubyがInternalServerError

    こんばんは。 自鯖にて初めてrubyを動かそうとしたところInternalServerError(500エラー)が帰ってきます。 まず、httpd.confに ---------------------- AddHandler cgi-script .cgi .rb ---------------------- と追加しました(このため.htaccessは作成しなくていいと思う)。 コマンドラインにて[which ruby][whereis ruby]を使い、[/usr/bin/ruby]にrubyがあることはわかるのですが、エラーが出てしまいます。 [test.rb] ---------------------- #!/usr/bin/ruby print "Content-type: text/html\n\n" print "test" ---------------------- 上記プログラムには755のパーミッションを与えています。 上記のフォルダにはCGI実行権が与えられています。 上記のフォルダではCGIはしっかりと動きます。 上記のプログラムはコマンドライン上[ruby test.rb]では動きます。 また、他のサイトもいろいろ調べましたが #!/usr/bin/env ruby #!ruby #!/usr/local/bin/ruby どのいパスでもエラーがでました。 解決方法を教えてください。 サーバ ---------------------- CentOS 5.4Final Apache 2.2.3 Ruby 1.8.5 ----------------------

専門家に質問してみよう