- ベストアンサー
パーミッションの設定
恐れ入ります。 windows xpのローカル環境にてapacheを通じCGIの勉強をしているのですが作ったCGIのアドレスをブラウザにうちこんでもファイルをダウンロードしますか?というダイアログがでてcgiが実行されず困っています。恐らくパーミッションの設定が問題なのだと思いますが、ffftpではローカル環境のパーミッションの設定ができません。 どのようにすればよろしいでしょうか?
- みんなの回答 (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行分を 補足に貼り付けてください
その他の回答 (2)
- pipipi523
- ベストアンサー率40% (148/365)
下記の質問が参考になると思います http://okwave.jp/kotaeru.php3?q=2349646
お礼
これがそのファイルの中身なんですけど 不思議・・・ #!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)
それは、パーミッションではなくてapacheの設定ではないでしょうか。 CGIを置くフォルダとか、CGIだと見なす拡張子はこれだとか言う設定を正しくapacheにしないと、CGIファイルが実行されるのではなくダウンロードされます。
お礼
お返事ありがとうございます。 でもですね、他のcgiファイル(printenv.cgi)は動くんですよ。 でそのcgiファイルに内容を書き換えると動くんです。 でもa.cgiのURLを打ち込むとダウンロードされてしまうんですよね。。。不思議
お礼
ありがとうございます。 #!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でも機能しなくなるわけなんです。。。
補足
やっと解決しました。 Content-type: text/html/\n\n これなんですけど スラッシュが一個おおいんですよね。 Content-type: text/html\n\n ですからこう記述しなければならなかったんです。 皆様のおかげでできました。 ありがとうございました。