• 締切済み

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

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

みんなの回答

  • 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