• 締切済み

ソースコードがそのまま表示されてしまう

turbolinuxのマシンにapache,mysql,perlを入れてデータベースを動かそうと思っています。 実際に動くかどうか動作確認をしてみました。 最初にindex.htmlを先頭に持っていかないとだめだという事なので最初にindex.htmlを置きその後ろにcgiファイルを置いてみました。 ブラウザー上から確認してみると index.htmlは表示されました。 そこからcgiファイルにリンクしてある仕組みになっています。 リンクのボタンをクリックするとcgiファイルのソースがブラウザー上に出てきてしまい、肝心の処理結果が出てきません。 自分のソースが間違っているのではないかと思い、あれこれやってみましたができません。 apacheの設定がわるいのでしょうか? どうか教えて頂ける方おりますでしょうか? お願い致します。

  • aeic
  • お礼率10% (60/582)

みんなの回答

  • natural
  • ベストアンサー率37% (419/1115)
回答No.3

naturalです。 補足読みました。(^_^) ソースの先頭行を次の様に変更してみてください。 #!/usr/bin/perl (usrの前にも/は入っていなければいけません) これで駄目なら今度は以下の様にしてみてください。 #!/usr/local/bin/perl 試してみてください。

  • natural
  • ベストアンサー率37% (419/1115)
回答No.2

過去の質問に似たものがありました。 同様の方法で解決できると思うので覗いてみてください。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=86752
aeic
質問者

補足

返答して頂きてありがとうございます。 いろいろな参考書等をよみあさりCGIを 起動させるためには"home/httpd/cgi-bin/***.cgi" とおいてIEで観覧してみました。 ところが以下のようなerrorが出てしまいました。 参照@@@@ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, mail@it-service.co.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. -------------------------------------------------- とりあえずこの文面に対していろいろな調査をした結果 下記の事が疑われるという事だったので直してみたのですができませんでした。 1プログラムの問題 問題ないと思ってる(かな?) 2文字コード、改行コードがUNIXの物と違う FFFTPにてEUC-JP,LFモードにしてアップしました。 パーミッションを705に設定しました。 データベースを呼び出すプログラムです。 Mysqlを使ってます。 MysqlもDBIモジュールもインストール済みですし、テーブルも入っています。 但し、テーブルのフィールドだけでレコードデータが入っていない状態です。 下記にそのソースを示します。 どうかたすけていただけないでしょうか? #!usr/bin/perl use DBI; my($dns) = "DBI:mysql:itser:192.168.0.29"; my($username) = "root"; my($password) = "654321"; my($dbh, $sth); my(@ary); $dbh = DBI -> connect ($dns ,$username ,$password) or &Error("データベースへアクセスできません。"); $sth = $dbh->prepare("select * from itser"); $sth -> $execute() or &Error("MySOLコマンドは実行できません"); print "Content-Type: text/html\; charset=shift_jis\n\n"; print "<PRE>\n"; while (@ary = $sth -> fetchrow_array()) { print join ("\t", @ary), \n; } print "</PRE>\n"; $sth = finish(); $dbh -> disconnect(); exit; sub Error { print "Content-type: text/html\; charset=shift_jis\n\n"; exit; }

noname#225520
noname#225520
回答No.1

apacheでのcgiパスの設定不良か、.htaccessの設定不良だと思います。一気にperlでやるのではなく、最初はシェルスクリプトのテストcgiを動作させてみることをおすすめします。問題の切り分けが難しくなりますから。

関連するQ&A

  • cgiでコードがそのまま表示されてしまいす。

    CGIを勉強中なのですがブラウザにコードがそのまま表示されてしまいます。 OSはビスタ、ソフトはActivePeal5.7.8.813とapache_2.0.54を使っております。 会社のパソコン(XP)だとスムーズに行くのですが、自宅のビスタだとそうはなりません。 他の方の質問を参考にいろいろ試したのですが、解決できません。 #! c:/perl/bin/perl # CGIヘッダーの出力 print "Content-type: text/html\n\n"; こんなかんじでブラウザに表示されます。 どの様な対処方法がありますでしょうか?

    • 締切済み
    • CGI
  • PHPのコードがそのまま表示されてしまう。

    同じようなメール内容ですみません。 過去のものを見て回りましたが、うまく理解できませんでした。 標記のとおりPHPのプログラムがそのままブラウザに表示されてしまうので困っています。 まずファイル構造はこのようになっています。 httpdocs | ---------index.php   |----.htaccess これだけです。この「index.php」にアクセスすると、携帯キャリア別にページを移動させるプログラムです。 ほかのサーバーでテストしたら稼動しましたでのプログラムには問題ありません。 次に.htaccessの設定は下記のようになっています。 Options +ExecCGI AddHandler cgi-script .cgi AddType application/x-httpd-cgi .cgi AddType application/x-httpd-php .php こちらの質問を試してみましたが、 apacheの設定ファイル(httpd.conf)とPHPの設定ファイル(php.ini)の設定は、私が管理者でないので操作することはできませんでした。 http://oshiete1.goo.ne.jp/qa2855291.html どなたか宜しくお願い致します。

    • 締切済み
    • PHP
  • cgiコードが表示されてしまう

    こんにちは。CGIを勉強し始めたばかりの素人で初歩的な質問で申し訳ありませんが、どうしても解決できなくて質問させて頂きました。宜しくお願いします。 win2000にてApache、active perlを使用しております。 今回初めて簡単なCGIを作ってローカルホストで確認しようとしたのですが、CGIがコードのまま表示されてしまいます。 perlインタプリタ→d:\Perl\bin\perl cgiはd:\Apache\htdocs\testフォルダに置き http://127.0.0.1/test/test1.cgiでアクセスしてみたのですが私の作ったtest1.cgiに限らずどのCGIでもコード表示されてしまいます。 何が悪いのか分からず困ってしまっています。(ここまでは入門書の指示通りに設定してきたのですが) 宜しくお願い致しますm(_ _)m

    • ベストアンサー
    • CGI
  • index.htmlしか表示されない

    FC3をインストールしています。 PHP5、MySQL5をいれたあとにページ確認をしようとしたら、index.htmlのページだけ表示されるのですが、例えば同じファイルでもaaa.htmlにするとブラウザ上で真っ白くなってしまいます。 ブラウザからソース表示させるとソースはきちんとしているので原因がわかりません。 何卒、ご教授くださいm(_ _)mペコリ

  • fireFoxブラウザでcgiで生成したソースがそのまま表示されてしまう

    先駆者の皆様、こんばんわ。firefox(ブラウザ)に関するもので、困り果てております。分かる方が居られるかも疑問ですが、皆様のお知恵を拝借させて頂けたら、幸いでございます。 質問は「FireFoxブラウザで特定のcgiのみ、htmlソースがそのまま出力されてしまう」です。 見て頂くのが一番、分かりやすいと思いますので、以下にその掲示板へのリンクを張らせて頂きます。FireFoxをお持ちの方は見てみて下さい。(※1)ソースがそのまま出てますよね。 ※1問題の掲示板 http://www.chibamania.com/cgi-bin/bbs2/index.cgi?ac=ichikawasi_gyoutoku ・サーバー上で正常に動作しているプログラムもある ・IEだと正常に表示される ・一度htmlとして保存したものは表示される。 まず、IEでは正常に表示されるので、htmlの解釈の違いかなと思いました。でもそれにしては、表示されたソースをコピペしてhtmlとして作成したものはFireFoxでも問題なく見れるのです。(※2) ※2表示されたHTMLを設置(同じサーバー、同じ階層) http://www.chibamania.com/cgi-bin/bbs2/a.html 掲示板のperlのソースはケントウェブさんからお借りしたもにに少しだけ修正したものを使ってます。同じ症状で苦しんでいる方は居られますか? とても難解な問題なため、ここですぐに答えがいただけるとは思えませんが、ワラをも掴む思いで質問しました。どうか情報をください。宜しくお願い致します。

  • プログラムを実行するとソースが表示される

    はじめまして。 いろいろと調べたのですが思ったような回答を得られなかったので教えてください。 Redhat9+apache+tomcatでJSPを動かしたいと思っています。 しかし実際ブラウザで確認するとブラウザ上に動かしたいプログラムのソースファイルの内容が表示されてしまいます。 ほかにLinux上でJSPを動かすための基本的な設定などがあればおしえてください。

  • fedora core3でCGIがソースコードで表示されてしまいます。

    document root("var/www/html")でCGIを使うために、httpd.confの設定で#Addhandler cgi-script →Addhandler cgi-script , と書き直し、<Directory"var/www/html">のoption項目にExecCGIと追加しました。 アクセスするときはlocalhost/***.cgiとしています。 cgi fileのperlのパスが#!/usr/bin/perlとなっているのでその場所にちゃんとperlがあるかも確認しました。 .cgiファイルはWindowsXPからASCIIで転送したものです。.httpd.confの設定以外はデフォルトの状態です。 何日間か試行錯誤したのですが、うまくいきません。どうかご助言お願いします。

  • CGIでhtmlを作成するもブラウザに表示されない(ソース表示あり)

    PerlでHTMLを表示するCGIを作成しました。 ローカルPCで試しているのですが、ブラウザは真っ白な表示で、ステイタスバーには「ページが表示されました」のメッセージがでます。 ソースを表示するとちゃんと指定したHTMLタグがあります。 何が正常な表示の妨げになっているのでしょう。 ちなみにPerlのコードはそんなに難しいものではなく #!/usr/local/bin/perl require "./lib/cgi-lib.pl"; &ReadParse(); print <<END; content-type: text/html <html> <head> <TITLE>送信処理</TITLE> </head> <body bgcolor="#cccccc"> <center> $in{'data'}<BR> </center> </body> </html> END 程度のものです。 ・マシンは富士通FMVでOSはWinXP ・WebサーバーソフトはAN HTTPD Daemon Version 1.41g ・CGIはCygwinのPerl5.8.0です。 ・ブラウザはIE6-SP2です。 この様にブラウザで真っ白な表示になるのは1つのCGIファイルだけで、他のCGIファイルは正常にブラウザ表示されます。

    • ベストアンサー
    • Perl
  • 文字化けされたまま格納される?

    質問があるのですがよろしくお願いします。 現在、CGIを使ったサイトを持っていおり、そのサイトのデータベースをテキスト形式のものからMySQLに移行したのですが、テキスト形式でデータを保存していた時は大丈夫だったのに、MySQLに保存するようにすると、「表示」のような文字が文字化けしてブラウザに表示されるようになってしまいました。PHPMyAdminで確認すると、文字化けしているところはしているので、データをMySQLに格納する過程で文字化けしているような気がします。 これにはどういった原因が考えられるでしょうか?どなたか解決方法が分かる方ご教授よろしくお願いします。 なお、perlからDBIを経由して、MySQLにアクセスしています。

    • ベストアンサー
    • MySQL
  • PHPコードにMySQLが反応しない

    環境 OS:winXP SP2 HE(localhost) Apache 2.0.52 MySQL 5.0.2 PHP 5.0.3 Apache,MySQL起動しています。 自動起動なのでMySQLのタスクトレイの表示はありませんがMySQLCommandLineClientでログインできますし、SQL文も通ります。 データベースは用意してあります。 必要な設定は済んでいると考えています。 [httpd.conf,my.ini] PHPコードだけのスクリプトは動きます。 ファイルはApache2\htdocs\に入れて、ブラウザで呼び出しています。 問題ではないのかと思っているところはデフォルトフォルダの位置です。 MySQLは"C:\Program Files\MySQL\MySQL Server 5.0" Apacheは"C:\Program Files\Apache Group\Apache2" PHPは"C:\PHP" になっています。 要点 PHPにてデータベースを参照するためのクエリが通らないようです。 参考書などのサンプルスクリプトとデータベースを利用してもクエリは通りません。 何が悪いのかご意見ご教授頂ければ幸いです。

    • ベストアンサー
    • MySQL