• ベストアンサー

.htmlから.cgi

現在、Linux(Fedora9)マシンにApacheとTomcatを連結し、その後htmlからcgi(perlファイル)を見ようとしたのですが、見れませんでした。 (cgiファイルのソースがそのまま出力 or cgiファイルのダウンロードが面になります) バージョンは以下のとおりです。 apache 2.2.11 tomcat 6.0.18 perl  5.10.0 ざっくりとしているとは思いますが、何かいい解決案がありましたらお願いします。

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

  • ベストアンサー
  • sugarp
  • ベストアンサー率54% (721/1331)
回答No.5

場所はそこでいいと思います。 では更なるチェック点を。 httpd.confファイルに 「AddHandler cgi-script .cgi」 の行がなかったりしませんか? あとcgiファイル自体の先頭行に #!/usr/bin/perl のようにperlのあるフォルダが正しく書かれていますか? もう思いつきません…

nama_me
質問者

お礼

今httpd.confを見たのですが、「AddHandler cgi-script .cgi」の行はありました。 またファイルの先頭に「#!/usr/bin/perl」もありました。

その他の回答 (5)

  • sugarp
  • ベストアンサー率54% (721/1331)
回答No.6

>上記に書いてある「****.htaccess」の「****」の意味はどう >いう意味でしょうか? あー気にしないでください。 ****.exe とかとよく表現するので、その名残です。 というかあとはもうパーミッションくらいしか… これとも思えないんですが、一応cgiファイルのパーミッションが デフォルトで755になっていると思いますが、705に変えてください。 既にお試しかも知れませんが。正直755のままでも問題はないと 思います。 ここでギブアップです…

nama_me
質問者

お礼

パーミッション設定もしましたが、変化はありませんでした。 エラーが起きるのでしたらまだ分かるのですが、.cgiをダウンロードするエラーになる理由が・・・

  • sugarp
  • ベストアンサー率54% (721/1331)
回答No.4

きちんと ****.htaccess という名前になっていますよね? そうだとしたら、もう私に打つ手はございません… 考えられる可能性が見つかりません。cgiのコーディングを間違って いる、などそういうものしか… お力になれず、申し訳ないです。

nama_me
質問者

お礼

現在はファイル名は「.htaccess(隠し)」になっています。 また置いてある場所は.cgiが置いてある場所になります。

nama_me
質問者

補足

連続にて申し訳ありません。 上記に書いてある「****.htaccess」の「****」の意味はどういう意味でしょうか?

  • sugarp
  • ベストアンサー率54% (721/1331)
回答No.3

あー、では原因はそれですね、恐らく。 そこで定義していないとcgiとして扱ってくれないと思います。 もちろん貼られていた参考サイトなどを見て、ご自分にて作成して いただけます。 他に間違いが無ければ今度こそ治る気がします。

nama_me
質問者

お礼

お返事遅れました。 早速作成してみたのですが、やはりできませんでした。 以下中身 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)
回答No.2

また基本的なことになりますが、 htaccessファイル内に AddType application/x-httpd-cgi .cgi はありますよね? AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ と2行にしておく方がいいと思います。 あとはリンクを貼られていましたperlの実行パスが合っているか、 これは当然見直されていると思いますが。 そのままソース内容が表示されてしまう、というのは前の回答と これくらいしか思いつかないのですが… 頼りない回答でどうもすみません。これ以上はちょっと。。。

nama_me
質問者

お礼

ご回答有難うございます。 "htaccessファイル"を探したのですが、見つかりませんでした。 検索の結果「自分で作成できる」と書いてあったのですが、自分で作成をしてしまってもよいのでしょうか? 参考URL http://www.remus.dti.ne.jp/~miyappu/html/cgki/body5.html ご回答宜しくお願い致します。

  • sugarp
  • ベストアンサー率54% (721/1331)
回答No.1

ありきたりの回答ですみませんが、cgiを置くフォルダにcgiモジュール の実行許可が通っていないのではないでしょうか。 confファイル内の ScriptAlias /cgi-bin/ "/test/cgi-bin/" のような感じのところの指定です。 この場合、/test/cgi-bin/ 以外のフォルダではそちら様が書かれて いますようにそのまま中身が表示されてしまうことがあると思います。 既に見直されているとは思いますが、これくらいしか思いつきません でした。一応ご確認してみてください。

nama_me
質問者

お礼

ご回答有難うございます。 指摘していただいた箇所を確認しましたが、実行許可は通っていました。 また今まで修正した箇所等を書かせていただきます。 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を見てシンボリックリンクの作成

関連するQ&A

  • tomcatでCGIが動きません

    tomcatをwebサーバーにしてCGI(Perl)を動かそうとしています。 非常に単純なCGIを適切な場所に配備して動作させようとしていますが、 ネスケにて「ドキュメントにデータが含まれていません。」のエラーが 発生してしまいます。tomcatのlogsディレクトリーのログを見ると、 . . 2003-11-14 11:28:12 cgi: findCGI: FOUND cgi at C:\Program Files\...\webapps\test\WEB-INF\cgi\test.cgi . 2003-xx-xx 11:28:12 cgi: runCGI (stderr):Can't open perl script "C:\Program": No such file or directory 2003-xx-xx 11:28:12 cgi: runCGI: 1 lines received on stderr と出ているので、CGIは見つけているみたいですが、runCGIにてc:\programを探そうとして失敗している様です。 tomcatのインストール先はc:\program files\apache group.....なのですが、 結局のところ、tomcatのインストール先ディレクトリーにブランクがあると×という事なのでしょうか? 勿論、tomcatでCGIを使用する場合の各種設定(servlets-cgi.renametojarのりネームや、web.xml内の マップのコメントはずし等)は行っています。CGIは以下です。 #!C:/usr/local/bin/perl.exe print "<HTML><BODY>Helloworld</BODY></HTML>"; 環境は os:win2000 web server:tomcat4.1.27 active perl5.8 駄目ならば、apacheをwebサーバーにして再挑戦しようと思います。お願いします。

    • ベストアンサー
    • CGI
  • CGIでコードがむきだしの状態で出力します

     LinuxでCGIを使っているのですが、出力されるページがちゃんとしたhtmlページではなく、むき出しのソースコードのままで出てきてしまいます。  Apacheのhttpd.confも「AddHandler cgi-script .cgi」と設定もきちんとしてあって、  ヘッダーなども小文字と大文字の違いには気を付けたり、GoogleやWikipediaなどの有名サイトのものを借用したりしているのですが、ソース剥き出しの状況は変わらないです。  また、このcgiをPerlのコマンドラインから一時的に仮ファイルを作り、そこから直接リンクをクリックすると何も問題なくそのhtmlが表示されます。  実は最近、WindowsからLinuxに転向したのですが、Windows時代には使えていたものが使えなくなっているという状態です。  どなたか解決策を御存じの方は教えてください。  ちなみに環境を申し上げておきます。  WindowsXP Pro  Internet Explorer 7.0  FireFox 2.0  Apache 2.0  Linux Ubuntu 6.06 LTS - Dapper Drake  FireFox 2.0  Apache 2.0

    • ベストアンサー
    • CGI
  • IISでCGIとしてのPerlが動かない

    Win2K ProにてIISでローカルサーバーでサーバーサイドスクリプトの勉強中です。 ASPは標準でついているので、PerlとPHPを組み込みました。 PHPは内部プロセス型ではなく、CGIバージョンですが、正常動作しました。 もちろんASPも。 それで問題なのですが、Perlがどうしても動きません。 PHPと同じように実行ファイルのパスや拡張子の設定はできているはずです。 しかし、いつまでたっても出力が出ず、2分くらいたってCGIタイムアウトとなってしまいます。 PerlにはActive PerlとCygwin付属のPerl両方試しましたが、タイムアウトです。 ファイルをコンソール上で実行してみましたが、Active PerlもCygwinのPerlも、期待通りの出力がなされています。 ちなみに、shファイルをCygwinのbashに関連付けて、実行させましたが、コンソール上での出力とはうらはらに、ブラウザ上ではやはりタイムアウトとなりました。 PerlのソースはいずれもほかのところのApacheでは動いているものです。 httpヘッダも正常です。 ソースの文字コードは英語のみ、EUC、改行コードcr+lf、lfのみなど、いろいろ試しましたがダメでした。 なにが原因なのでしょう。 IISを使っている方、アドバイスお願いします。

  • Apache/2.2.13 WebサーバーでCGIが動きません

    ご迷惑をおかけして、すいません。 何方か助けてください。お願いいたします。 OS Redhat Linux Fedora 11 バージョン 1.430 Webサーバー Apache バージョン 2.2.13 perl perl 5.10.0-73.fc11 httpd.confの記述 ------------------------- AddHandler cgi-script .cgi .pl ScriptAlias /cgi-bin/ "/home/www/cgi-bin/" <Directory /home/www/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> ------------------------ デレクトリー /home/www/cgi-bin 属性(775 rwxrwxr-x) CGIファイル 属性(775 rwxrwxr-x) http://eiwa-up.com/cgi-bin/index.pl http://eiwa-up.com/cgi-bin/index.cgi 同じファイルで拡張子が.plは正常に動作します。 拡張子が.cgiだと動かない状態です。 お忙しい中申し訳ありませんが、何方か助けてください。 お願いいたします。 趣味で無料レンタルCGIをボランティアで提供していたのですが、 先月Linux Laser5が老朽化のためダウンしてしまい、新しくFedora11のwebサーバーを新インストールしているのですが私の知識では解決できそうにありません。無料レンタルCGIで使用していたサーバーのためたくさんの方にご迷惑おかけしている状態です。 なぜ.cgi拡張子だと動作しないのか?解決方法を教えていただけたら憂いしいのですが。よろしくお願いいたします。

  • Windows の *.cgi ファイル を Linux で動かすには?

    お願いします。初心者です。Windows XP コンピュータ に Apache、activ perl で、イントラネットで、やっています。Windowsで作った *.cgi ファイルを 別のコンピュータ=SUSE Linux 10.1 OSS に移して 、同じことを実行したいのですが、samba でコピーしただけでは、ダメでした。 Linux で *.cgi ファイルを作るのは、とても大変なので、なんとか、簡単に Winndows で作った *.cgi ファイルを、上記の Linux コンピュータで動くようにしたいのでが...。お教えください。どうか、よろしく、お願いいたします。

    • ベストアンサー
    • CGI
  • CSVファイルをCGIでダウンロード

    Perlを使ってCGIを書いています。 申し込みフォームを送信すると、CSVファイルに書き込むのとメールで送信するというCGIを作りました。 そこで、その作ったCSVファイルをFTPソフトを使うのではなく、ブラウザ上でCGIを使ってダウンロードしたいのですが、どうしたらよいのでしょう? 環境は OS:Linux、PerlのバージョンはPerl5です。

    • ベストアンサー
    • CGI
  • バイナリCGIのみ禁止

    OS:Fedora core3 Webサーバー:Apache でサーバーを構築しています。 Perl等のスクリプトで書かれたCGIは許可して、バイナリになっているCGIを禁止したいのですが何か方法はないでしょうか?

  • TomcatでのCGI

    Tomcatでcgiを動かすため、以下のことをしました。 servlets-cgi.renametojar を servlets-cgi.jar に名前変更 web.xmlを修正 (<servlet>と<servlet-mapping>のコメントアウト) cgiのファイル作成 #!/usr/bin/perl print "Test"; アクセスすると、真っ白な画面しか表示されず、ブラウザでソースの表示をすると、以下のソースしかありません。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD> <BODY></BODY></HTML> http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=11945 ここの方は、Apacheと連携することで解決しています。 しかし、Tomcatのみで動かそうと思っているので、ご指導よろしくお願いいたします。

  • CGIが動きません!!

    CGIが動きません。htmlを表示できる状態です。 エラーログには「 couldn't spawn child process: g:/program files/apache group/apache/cgi-bin/hello.cgi」と表示されています。 どうしたら良いのでしょうか? windouw NT 4.0 + Apache version 1.3.19 + Active Perl version 5.005_03 です。 perlの構文チェックは問題なしです。 httpd.confの設定は下記のようにしました。 1.AddHandler cgi-script .cgi を追加。 2.オプションの設定にExecCGIを追加。 <Directory "G:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None # Options None Options ExecCGI Order allow,deny Allow from all </Directory>

  • CGIを使用するためのApacheの設定

    今HPを作っています。 そこでカウンターを作ろうと思ってPerlを勉強したのですが、 Apacheでファイルを送り、 CGIを実行しようとすると、 「ファイルのダウンロード」 とでて「実行」を押すとメモ帳でそのCGIファイルが開かれてしまいます。 これはApacheの設定(httpd.conf)が関係してるんじゃないかと思うんですが、 設定の仕方がよくわかりません。 教えてください。 OSはWinXPでバージョンは2.0.55.0です。