HTMLにCGIプログラムを埋める方法

このQ&Aのポイント
  • HTMLにCGIプログラムを埋める方法について解説します。Windows 2000とApache2、Perl5の環境での設定方法について説明します。
  • Apache2のディレクトリ構成として、cgi-binディレクトリとhtdocsディレクトリがあります。cgi-binディレクトリにはwforum.cgiというCGIプログラムが配置されています。
  • 例として、htdocsディレクトリにindex.htmlを作成し、BBS行きというハイパーテキストをクリックしたらwforum.cgiを実行するような設定を行います。相対パスを使用することも可能です。
回答を見る
  • ベストアンサー

htmlにCGIプログラムの埋め方。

window2000+apache2+perl5の環境ですが。 ディレクトリの構成: c:\Program Files\Apache Group\apache2 apache2にcgi-bin とhtdocsの二つのディレクトリがあり、 cgi-binにwforum.cgiというCGIプログラムがあるとします。 \htdocs\index.htmlを次のように作りました: ------------------------------------ <html> <head> <title> test page </title> </head> <body> ここに”BBS 行き”というハイパーテキスト をクリックしたら、wforum.cgiを実行してくれる </body> </html> -------------------------------------- 上のようなプログラムをどう作れますか。できれば、相対 パスを使いたいです。

  • namune
  • お礼率55% (149/268)
  • CGI
  • 回答数1
  • ありがとう数0

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

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

<a href="/cgi-bin/.../wforum.cgi">BBS行き</a> とでも書けばいいのでは?(^^;

関連するQ&A

  • CGIを開けない。。。

    apacheとphpを設定して動作確認したあとに、cgiも操作したいので、Active Perlというものをインストールしてみました。 phpは、http://localhost/で「C:/Program Files/Apache Software Foundation/Apache2.2/htdocs」のフォルダーを参照できるのですが、cgiを開くときには、どこのフォルダーに格納し、URLをどうすれば宜しいのでしょうか?(因みにcgi-binとhtdocsに格納し、http://localhost/***.cgiで試したのですが駄目でした。) Active Perlインストール後に変更した場所 ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> AddHandler cgi-script .cgi .pl なお、perlの設定には、こちらhttp://www.jisaba.net/xp/actpeal/04.htmのサイトを参考にしました。 環境はWindowsVistaです。 どなたか宜しくお願い致します。

    • ベストアンサー
    • Perl
  • CGIの実行

    CGIを実行しようとしたら、下記のようなメッセージが出てしまいました。このDirectoryではダメって事なのでしょうか。 Options ExecCGI is off in this directory: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/ruby.cgi CGIってCgi-Binの下って決まっているのでしょうか? どなたかご存知であれば教えてください。

    • 締切済み
    • CGI
  • 初心者 CGIがうまく表示できない hello worldが表示されない

    よろしくお願いします。 アパッチとアクティブパールはインストール済みです。(vistaです) C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\index.html で「It works!」は問題なく表示されます。 中身: <html><body><h1>It works!</h1></body></html> です。 次にCGIを表示する練習をしようと C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\perlbook というフォルダに ********************************* ファイル名:hello.cgi 中身: #!/Perl/bin/perl print << "eof"; content-type: test/html <html> <head> <title>cgi</title> </head> <body> hello world </body> </html> eof ********************************* を作り、ダブルクリックで開きましたが ブラウザには 「#!/Perl/bin/perl print << "eof"; content-type: test/html hello world eof」 が表示されます。 hello worldだけ表示されるはずだと思うのですが なぜ全てのタグが表示されてしまうのでしょうか? どこが間違っているのかご指摘よろしくお願いします。

    • ベストアンサー
    • Perl
  • cgi-bin配下のファイルに読込許可を!

    最近、Apache2を使い始めたばかりで設定がよくわかりません。 Apacheの設定ファイルで、httpd.confというファイルがありますが、その中で、 ScriptAlias /cgi-bin/ "C:/Apache2/htdocs/cgi-bin/" <Directory "C:/Apache2/htdocs/cgi-bin"> AllowOverride None Options All Order allow,deny Allow from all </Directory> と記述して"C:/Apache2/htdocs/cgi-bin"配下にあるファイルに CGIが動作するように許可しました。 しかし、これだと逆に"C:/Apache2/htdocs/cgi-bin"配下にある HTMLファイル(.htm等)が読み込めなくなってしまいます。 cgi-bin配下にあるhtmlファイルも表示できるように許可を 出したいのですが、どのように設定すればよろしいのでしょうか?

  • ホームページからCGIプログラムの実行

    自宅で、linux+apache2の環境です。 apacheで HTML本体のルートディレクトリは:  DocumentRoot->/home/www/ CGI実行可能のディレクトリは: ScriptAlias /cgi-bin/ -> /home/CGI/ と設定されています。  質問は、/home/www/index.htmlに /home/CGI/test.cgiを実行したいとき、どう宣言すれば よいでしょうか。  できれば、LAN外も、LAN中でも使えるために、相対バスを使いたいです。

    • ベストアンサー
    • CGI
  • 掲示板(CGI)設置でApacheの意味と使い方を教えて下さい。

    下記掲示板「めぐあい掲示板」を設置しようとしたのですが、Apacheの意味やインストール方法がわかりません。 めぐあい掲示板 [MI_BBS] V4.60のダウンロードファイルに含まれてるマニュアル(mi_bbs.txt)の119行~150行までの意味が全くわかりません。例えば「/usr/binにシンボリックリンクを作成する」の意味がわかりません。 http://www.megumi-island.net/cgi.html#crypt 当方、Apacheを使わない?掲示板やその他のCGIの設置はそこそこ経験がありますが、/usr/local/apache/を作成する方法が全くわかりません。 教えて下されば幸いです。 ちなみにディレクトリの作成とパーミッションの意味と設定方法はよくわかります。 なお、サーバーの環境は/usr/bin/perlです。 /usr/local/apache/ | |--- cgi-bin/ (701) 【スクリプト格納ディレクトリ】 | |--- htdocs/ (701) | | | |--- bbs_data/ (777) 【データファイル格納ディレクトリ】 | | | +--- bbs_file/ (733) 【添付ファイル格納ディレクトリ】 | +--- secret/ (701) | +--- bbs_pass/ (777) 【パスワードディレクトリ】

  • cgi(perl)でパラメータが渡せない

    以下のプログラムでnum=9が伝わらないので、ミスをご指摘ください。 グラフィカルなアクセスカウンタを表示させようとしていますが うまくいかないのでテキストモードでデバッグしています。 [ /usr/local/apache2/htdocs/gif-view.html ] <html> <head> <meta http-equiv="Content-type:" content="text/html; charset=UTF-8"> <title>gif-view</title> </head> <body> <iframe src="/cgi-bin/gif-test.cgi?num=9"></iframe> <!-- <img src="/cgi-bin/gif-test.cgi?0" width=50 height=50> --> </body> </html> [ /usr/local/apache2/cgi-bin/gif-view.cgi ] permission は 755 にしています。 #!/usr/bin/perl print "Content-Type: text/plain;\n\n"; print "gif-test.cgi\n"; $prm0 = @ARGV[0]; if($prm0 = "") { print "Param is exist\n"; } else { print "Param is empty\n"; 実行結果として gif-test.cgi Param is empty となります。 httpd.conf で Script Alias /cgi-bin/ "/usr/local/apache2/cgi-bin/" を有効にしています。

    • ベストアンサー
    • Perl
  • CGIの設置ができません。

    Apacheのhttpd.confを設定して、aska.cgiという掲示板を動かそうとしているのですが、うまく動きません。 色々調べた結果、httpd.conf内のOptionというところにExec CGIを追記すればいいとのことだったので、 <Directory "C:/Program Files/Apache Group/Apache2/htdocs"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> としましたが、 Options ExecCGI is off in this directory: C:/Program Files/Apache Group/Apache2/htdocs/aska/aska.cgi, referer: http://localhost/aska/ とerror.logには表示されてしまいます。 ちなみにaska.cgiは C:/Program Files/Apache Group/Apache2/htdocs/aska/ に入っています。 よろしくお願いします

  • CGIのアクセス制限について

    環境は windowsXPHome SP3 / Apache2.2 / ActivePerl5 / (MySQLを使う予定) です。 htdocs\index.html htdocs\ddd\aaa.cgi htdocs\ddd\bbb.cgi のようなディレクトリ構成で、httpd.confは、htdocs以下を公開する設定になっていて <Directory "D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ddd"> AddHandler cgi-script .cgi Options +ExecCGI </Directory> を指定しました。 これを自宅サーバーとして公開する場合、外部からはindex.htmlにアクセスできるようにして、 aaa.cgiやbbb.cgiはindex.htmlからリンクやformのactionから呼び出されてからしか実行できない (直接cgiのurlを指定して開けない)ようにするにはどうすればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • フォームからCGIを起動できない

    こんばんは。 WebサーバApacheでCGIを作成しています。 DocumentRootが初期設定/var/www/html/で、その下にindex.htmlを作成しました。 次にcgiのディレクトリが初期設定の/var/www/cgi-bin/で、その下にtest.cgiを作成しました。 そして、test.cgiのパーミッションを-rwxr-xr-xにしてからApacheを起動しました。 別マシンのブラウザからhttp://xxx.xxx.xxx.xxx/index.htmlでアクセスし、フォームのテキストボックスに「abc」と入力して送信ボタンを押しましたが、404エラーになってしまいます。 (アドレスバーには「http://xxx.xxx.xxx.xxx/test.cgi?NAME=abc」と表示) ブラウザのアドレスバーに直接「http://xxx.xxx.xxx.xxx/cgi-bin/test.cgi?NAME=abc」とすると正常にアクセスできます。 ドキュメントルート配下にあるindex.htmlからドキュメントルート外にあるCGIのディレクトリ(ScriptAlias /cgi/bin/ "/var/www/cgi-bin/")を参照するにはどのようにしたらよいのでしょうか? ----------index.html---------------- <HTML> <HEAD><TITLE>フォーム</TITLE></HEAD> <BODY> <FORM ACTION="../cgi-bin/test.cgi" METHOD="GET">名前 <INPUT TYPE="TEXT" NAME="NAME"><BR> <INPUT TYPE="SUBMIT" VALUE="送信"> </FORM> </BODY> </HTML> ----------index.html---------------- ----------test.cgi------------------ #!/usr/bin/perl $str = $ENV{"QUERY_STRING"}; print << "EOF"; Content-type: text/html <HTML> <HEAD><TITLE>TESTCGI</TITLE></HEAD> <BODY>$str</BODY> </HTML> EOF ----------test.cgi------------------

    • ベストアンサー
    • CGI

専門家に質問してみよう