- ベストアンサー
.htmlから.cgi
現在、Linux(Fedora9)マシンにApacheとTomcatを連結し、その後htmlからcgi(perlファイル)を見ようとしたのですが、見れませんでした。 (cgiファイルのソースがそのまま出力 or cgiファイルのダウンロードが面になります) バージョンは以下のとおりです。 apache 2.2.11 tomcat 6.0.18 perl 5.10.0 ざっくりとしているとは思いますが、何かいい解決案がありましたらお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
場所はそこでいいと思います。 では更なるチェック点を。 httpd.confファイルに 「AddHandler cgi-script .cgi」 の行がなかったりしませんか? あとcgiファイル自体の先頭行に #!/usr/bin/perl のようにperlのあるフォルダが正しく書かれていますか? もう思いつきません…
その他の回答 (5)
- sugarp
- ベストアンサー率54% (721/1331)
>上記に書いてある「****.htaccess」の「****」の意味はどう >いう意味でしょうか? あー気にしないでください。 ****.exe とかとよく表現するので、その名残です。 というかあとはもうパーミッションくらいしか… これとも思えないんですが、一応cgiファイルのパーミッションが デフォルトで755になっていると思いますが、705に変えてください。 既にお試しかも知れませんが。正直755のままでも問題はないと 思います。 ここでギブアップです…
お礼
パーミッション設定もしましたが、変化はありませんでした。 エラーが起きるのでしたらまだ分かるのですが、.cgiをダウンロードするエラーになる理由が・・・
- sugarp
- ベストアンサー率54% (721/1331)
きちんと ****.htaccess という名前になっていますよね? そうだとしたら、もう私に打つ手はございません… 考えられる可能性が見つかりません。cgiのコーディングを間違って いる、などそういうものしか… お力になれず、申し訳ないです。
お礼
現在はファイル名は「.htaccess(隠し)」になっています。 また置いてある場所は.cgiが置いてある場所になります。
補足
連続にて申し訳ありません。 上記に書いてある「****.htaccess」の「****」の意味はどういう意味でしょうか?
- sugarp
- ベストアンサー率54% (721/1331)
あー、では原因はそれですね、恐らく。 そこで定義していないとcgiとして扱ってくれないと思います。 もちろん貼られていた参考サイトなどを見て、ご自分にて作成して いただけます。 他に間違いが無ければ今度こそ治る気がします。
お礼
お返事遅れました。 早速作成してみたのですが、やはりできませんでした。 以下中身 Options FollowSymLinks ExecCgi Includes AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ DirectoryIndex index.html index.cgi +改行
- sugarp
- ベストアンサー率54% (721/1331)
また基本的なことになりますが、 htaccessファイル内に AddType application/x-httpd-cgi .cgi はありますよね? AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ と2行にしておく方がいいと思います。 あとはリンクを貼られていましたperlの実行パスが合っているか、 これは当然見直されていると思いますが。 そのままソース内容が表示されてしまう、というのは前の回答と これくらいしか思いつかないのですが… 頼りない回答でどうもすみません。これ以上はちょっと。。。
お礼
ご回答有難うございます。 "htaccessファイル"を探したのですが、見つかりませんでした。 検索の結果「自分で作成できる」と書いてあったのですが、自分で作成をしてしまってもよいのでしょうか? 参考URL http://www.remus.dti.ne.jp/~miyappu/html/cgki/body5.html ご回答宜しくお願い致します。
- sugarp
- ベストアンサー率54% (721/1331)
ありきたりの回答ですみませんが、cgiを置くフォルダにcgiモジュール の実行許可が通っていないのではないでしょうか。 confファイル内の ScriptAlias /cgi-bin/ "/test/cgi-bin/" のような感じのところの指定です。 この場合、/test/cgi-bin/ 以外のフォルダではそちら様が書かれて いますようにそのまま中身が表示されてしまうことがあると思います。 既に見直されているとは思いますが、これくらいしか思いつきません でした。一応ご確認してみてください。
お礼
ご回答有難うございます。 指摘していただいた箇所を確認しましたが、実行許可は通っていました。 また今まで修正した箇所等を書かせていただきます。 http://mroom.cool.ne.jp/nikki/archives/000053.htmlの中にある 「編集開始」の「ServerTokens Prod」~「MaxKeepAliveRequests 1000」と「UseCanonicalNameOn」(/etc/httpd/conf配下) http://rina.jpn.ph/~rance/linux/apache/perl.htmlを見てシンボリックリンクの作成
お礼
今httpd.confを見たのですが、「AddHandler cgi-script .cgi」の行はありました。 またファイルの先頭に「#!/usr/bin/perl」もありました。