• ベストアンサー

パーミッションの設定

恐れ入ります。 windows xpのローカル環境にてapacheを通じCGIの勉強をしているのですが作ったCGIのアドレスをブラウザにうちこんでもファイルをダウンロードしますか?というダイアログがでてcgiが実行されず困っています。恐らくパーミッションの設定が問題なのだと思いますが、ffftpではローカル環境のパーミッションの設定ができません。 どのようにすればよろしいでしょうか?

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

  • ベストアンサー
回答No.3

>ダウンロードしますか?というダイアログがでて それをダウンロードしてどこかに保存し terapadなどのテキストエディタ ( http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html ) で開いてみてください。 perlのCGIだと仮定すると3つの状態が想定できます。 1. CGIの実行結果が記述されている場合  ヘッダの不良  またはContent-type:text/plain\n\nと言うヘッダの場合、文法的には正しいのですが  MSIEのおかしな仕様により開けません。   Content-type:text/html\n\n をつけて  HTML文を出力しましょう 2. 実行結果ではなく #! /usr/local/bin/perl などを含む  スクリプトのソースそのものが記述されている場合  httpd.confまたは有効な .htaccessで AddHandler cgi-script .cgi が効いていません 3. エラーメッセージが記述されている場合  error.logを見て参考にしましょう 場所はデフォルトなら C:\Program Files\Apache Group\Apache\logs  内容を見ても判らなければ logの一番下から3行分を  補足に貼り付けてください

ler
質問者

お礼

ありがとうございます。 #!C:/perl/bin/perl print "Content-type: text/html/\n\n"; print "<html>\n"; print "<head><title>age</title></head>\n"; print "<body>こんにちわ。ようこそcgiの世界へ</body>\n"; print "</html>\n"; これがそのファイルの中身なんですけど。 1でもないですよね。2でもないです。 printenv.cgiは.plをなおすときちんと動きますので・・。 3ですがエラーメッセージもないですね。 <html> <head><title>age</title></head> <body>こんにちわ。ようこそcgiの世界へ</body> </html> ファイルを開くとこのようにでています。 おかしなことにprintenv.cgiの中身を消して ファイルの中身をかきかえるときちんと出力されるんですよね。 そしてアパッチェを再起動するとprintenv.cgiでも機能しなくなるわけなんです。。。

ler
質問者

補足

やっと解決しました。 Content-type: text/html/\n\n これなんですけど スラッシュが一個おおいんですよね。 Content-type: text/html\n\n ですからこう記述しなければならなかったんです。 皆様のおかげでできました。 ありがとうございました。

その他の回答 (2)

  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.2

下記の質問が参考になると思います http://okwave.jp/kotaeru.php3?q=2349646

ler
質問者

お礼

これがそのファイルの中身なんですけど 不思議・・・ #!C:/perl/bin/perl print "Content-type: text/html/\n\n"; print "<html>\n"; print "<head><title>age</title></head>\n"; print "<body>こんにちわ。ようこそcgiの世界へ</body>\n"; print "</html>\n"; なにがいけないんでしょうね

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

それは、パーミッションではなくてapacheの設定ではないでしょうか。 CGIを置くフォルダとか、CGIだと見なす拡張子はこれだとか言う設定を正しくapacheにしないと、CGIファイルが実行されるのではなくダウンロードされます。

ler
質問者

お礼

お返事ありがとうございます。 でもですね、他のcgiファイル(printenv.cgi)は動くんですよ。 でそのcgiファイルに内容を書き換えると動くんです。 でもa.cgiのURLを打ち込むとダウンロードされてしまうんですよね。。。不思議

関連するQ&A