• 締切済み

apatcheで、cgiを使いたいのですが。。

こんばんわ。いつもお世話になっています。 今、なんとか自宅サーバを設置したいと思ってがんばっています。 windowsXP pro に、apatche2.4.09と、activeperl5.8をインストールした後、http.confの設定も有る程度終わり、なんとかcgiも使えるようになったのですが、cgi-binというフォルダの中にcgiファイルをいれないと、cgiが動作しないのです。 これを、どこのディレクトリにおいても、cgiが動作するようにしたいのですが、httpt.confファイルのどこをどのように変更したらいいのか、お教えいただけないでしょうか? よろしくお願いいたします。m(__)m

みんなの回答

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

>これを、どこのディレクトリにおいても、cgiが動作するようにしたいのですが、 Apacheの設定ミスや、スクリプトのバグが原因でセキュリティホールになる可能性が ありますので、CGIを実行できるディレクトリは制限するのが普通です。 「三菱マテリアルの通販サイトで約1100件の顧客情報が閲覧可能に」 http://itpro.nikkeibp.co.jp/free/ITPro/NEWS/20040506/143873/ へたすると、このように、あなたのPCから大事な情報が 取り出せてしまうかもしれませんよ。

関連するQ&A

  • CGIスクリプト 保存用ディレクトリ

    ApacheというWWWサーバーでは、srm.confというファイル内に  ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/と記述し、かつaccess.confというファイル内に、 <Directory /usr/local/www/cgi-bin> </Directory> という記述を行うことで、/usr/local/www/cgi-bin/というディレクトリがそのCGIスクリプトの保存用ディレクトリになります。 と書いているのですが、どういうことかよくわかりません。srm.confというファイルはあらかじめ、パソコンにはいっているのでしょうか? ScriptAlias /cgi-bin/ /usr/local/www/cgi-bin/と記述しと書いているのですが、何で記述したらいいのでしょうか。 すいませんが、教えてください。

  • CGIの設定

    いつもお世話になっております。 各バーチャルドメイン内でCGIを動作させるためにApacheの設定を したのですが、「ページが表示されません」と出てしまいます。 (バーチャルドメインの設定も完了していて、HTMLファイル、PHPファイルは正常に動作しています。) よろしくご教示お願いいたします。 /etc/httpd/conf/httpd.conf -------------------------------------------------- ScriptAliasMatch /~(..*)/cgi-bin/(.*) /home/$1/cgi-bin/$2 <Directory "/home/*/cgi-bin"> AllowOverride None # Options None Options ExecCGI Order allow,deny Allow from all </Directory> (1) ↓にファイルをアップロード   パーミッションは「755」に設定してあります。   /home/ユーザ名/cgi-bin/count.cgi (2) ブラウザから↓のURLでアクセス   http://バーチャルドメイン/cgi-bin/count.cgi <環境> Red Hat Enterprise Linux 5 Apache:2.2.3

  • CGIで画像が表示されません

    こんにちは。最近フレッツADSLに変更し、ISPのダイナミックDNSも利用できますので、 自前WEBサーバを立ち上げようとしております。 現在、Win2000Proで Apache for win32 1.3.22、 ActivePerl-5.6.1.630で 何とかWEBサーバは稼動しております。 通常のHTMLは表示可能です。CGIも動作しますが、そのCGI内で表示しようとする画像(GIF,JPG,PNG)が表示されません。 (Xマーク状態です。これはcgi-bin配下ディレクトリ内です)プロパティをみても、パスは良さそうなのですが・・。 以前いたISPはcgiwrapを使用していましたので苦労しました。同じ状態です。 confファイルを書き直す事で可能?やっぱりCGIディレクトリに画像は不可?と 2つの疑問で行き詰まっております。 cgiのあるディレクトリに.htaccessを置き AddHandler server-parsed .gif .jpg .png でもダメでした。 パスの指定が悪いのかなー^^;なんか、トンチンカンな失敗の気もしますが・・・。 どなたかお力添え頂ければ幸いです。

    • 締切済み
    • CGI
  • CGIに関して

    CGIに関してなのですが、CGI実行ディレクトリ名binーcgiにすると言う点で困っています。今、掲示板をHPにアップしようとしているのですが、掲示板設置のマニュアルでは以下の通りとなっています。とりあえず、以下の作成が全然全く分からなくって困っています。分かる方がおられましたら是非ご回答下さいますようお願いいたします。 ホームディレクトリ(ここではpublic_htmlディレクトリとします) の下に、cgi-binディレクトリ(フォルダ)を作成し、必要なファイルををFTP 転送します。全体のディレクトリ構成とファイル位置は以下のとおりです。 public_html / index.html (トップページ) | +-- cgi-bin / ????.cgi ????.log jcode.pl 背景画像など ※ちなみに、ディレクトリ実行はbin-cgiとあります。

  • Apache2.0とActivePerl5.8でCGIが動作しない

    ご教授願います。  掲題の通り、Win2000ProにApache2.0.48、ActibePerl5.8.1.807をインストールしローカル上にてApacheの動作確認は出来ました。  色々なサイトを調べ、現在のhttpd.confは下記のような設定となっています。 【httpd.confの主な変更点】  1:DocumentRootは別ドライブのフォルダ(C:ではない)に変更(httpd.confのファイル、229行目あたり)  2:同様に<Directory>も1と同じフォルダ(httpd.confのファイル、255行目あたり)  3:Options Indexes FollowSymLinks MultiViews ExecCGI Includesと変更(httpd.confのファイル、269行目あたり)  4:ActivePerlのインストール先は「C:/usr/local/」です。  5:test.cgiの格納場所は1で指定したフォルダと同じです。 【症状】  ブラウザのアドレスに「http://localhost」を入力するとApacheの動作確認画面が出ますが、「http://localhost/test.cgi」を入力すると『Forbidden You don't have permission to access/test.cgi on this server」と表示されます。 知識不足で申し訳ございませんが、よろしくお願いいたします。

  • cgi-binディレクトリ内のhtmlを有効にしたい

    度々お騒がせしております。 本日は、Apacheの設定について 伺いたく投稿させていただきました。 apacheの設定を終え、 一通り動作するようにできたのですが、 cgi-binディレクトリに置いたhtmlや jpg,gifといったcgi以外のファイルが 表示されません。 httpd.confによる cgi-binディレクトリの設定でどうにかなるものと思い、 色々調べてみたのですが、 いまいち設定方法がわかりません。 以下、私の環境です。 Apacche 1.3.20 htmlディレクトリ /var/www/html/ (775) cgi-binディレクトリ /var/www/html/cgi-bin/ (775) 現在のcgi-binディレクトリの設定 ScriptAlias /cgi-bin/ "/var/www/html/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> 以上、どうかよろしくお願いいたします。

  • ApacheでCGIが実行されない:FedoraCore4

    質問が立続きになってしまい申し訳ございません。 私はFedoraCore4を使い自宅サーバ開設に挑んでいます。 なかなか上手くいかずに苦戦中です。。。 さて問題の質問は「Apache2.0でCGIを使いたい」のですが上手くいきません。 このあたりについてご指導をお願いします。 ■現在までの設定■ ApacheがドキュメントルートでCGIを利用できるように設定。  > conf/httpd.conf  の、  > #Add Handler cgi-script.cgi  部分の、  > #  を取り除きました。また、  > <Directory "/var/www/html">  のOptionの部分に、  > ExecCGI  の文字を追加しました。 この上記設定において「Movable Type」を設置し 実際に動作確認が出来ました。 「Movable Type」  > /var/www/html  に、本体とLogを設置しています。 以上は質問とはまったく別件になってしまいましたが、 一般の配布されているCGIスクリプトを設置してみましたが まったく動作しません。 いちおう設置場所につきましては、  > /var/www/html と、  > /var/www/cgi-bin で試しました。実際には > /var/www/cgi-bin に設置するんですよね~?(不安 一般の配布CGIを設置実行するに当たり上記記載の"httpd.conf"の 設定以外にどこか設定する部分ってあるのでしょうか?? どうぞわかり易いご指導をお願いします。

  • CGIのパーミッションについて

    昨日はじめて自鯖を立てようと思い apache2にて鯖を立てました。 こちらの環境は OS:windowsXP server:apache2 + ActivePerl CPU:Pen4 3.0Ghz メモリ:1024MB CGIの勉強をしたく、アップローダーを設置することに しました。http://sugachan.dip.jp/download/uploader.php こちらのサイトのSn Uploaderというものです。 Cgiの1列目#!のperlパスを自分の環境の #!C:/Perl/bin/perl に変更し ホームディレクトリ下のcgi-binフォルダ下に設置しました。 http://localhost/cgi-bin/upload.cgiにアクセスし 動作を確かめようとしたのですが500エラーがでてしま います。ためしに他のCGIを用意し試しましたところ きちんと動作しました。Apacheのほうの設定はすんでいます。いまのところパーミッションを疑っているのですが、Windowsの場合パーミッションの設定がいらないと聞いたことがあるのですがどうなんでしょうか? もし設定が必要な場合、自鯖にFFFTP等のソフトで繋いでパーミッションの変更を行うことはできるのでしょうか。自鯖にFTPサーバがないと無理なんでしょうかね? 初心者な質問で申し訳ないです。もしFFFTP以外の方法でパーミッションの変更方法があるのでしたら是非おしえてください。日本語がわかりにくいところがあると思いますが疑問な点がありましたら言ってください。よろしくお願いいたします。

    • 締切済み
    • CGI
  • ローカル環境でのCGIエラー

    ActivePerlとAn HTTPdでWindowsXP HomeEditionのPC上でCGIを動かそうと思っています。 どちらも最新版をダウンロードしてインストールしました。 ActivePerlに関してはegフォルダ下のexample.plで動作確認が取れています。 An HTTPdに関してはhttp://127.0.0.1以下のURLを指定してページが表示されています。 ですが、htmlからcgiを呼び出そうとすると「ページを表示できません」「サーバーが見つからないか、DNS エラーです。」のエラーが出てしまいます。 試しにcgiファイルをフルパスで指定したのですが同じでした。 ちなみに、簡単なCGIプログラムtest.cgiを作成、サーバにアップして動作を確認しましたがローカルではエラーになります。 また、ローカルでコマンドプロンプトにて c:\usr\local\bin\perl c:\プログラムのパス\cgi-bin\test.cgi と入力すると内容を表示します。 コマンドプロンプトでCGIプログラムのあるcgi-binディレクトリに移動して perl -v と入力するとperlのバージョン情報を表示するので、パスは通っていると思われます。 Au HTTPdのerrors.logには Thu Aug 16 19:21:18 2007 Warning: CGI TerminateProcess 2500 error 5 とりあえず、自分で原因を絞れるであろうところはあたってみたつもりですが、何か見落としていることがあるでしょうか? もしかしたらAu HTTPdに問題があるでしょうか?

    • 締切済み
    • CGI
  • CGIファイル内の CGI呼出しのパスについて

    CGI 内からの .cgi ファイルの呼出しのパスについて質問があります。 動作環境は linux - apache - perl です perl の cgi ファイル内で次のように、同じ /cgi-bin ディレクトリ内の reset.cgi をコールしています。 ========== #!/usr/bin/perl (省略) if($form[0] =~ /reset/){ `reset.cgi`; } ========== バッククォートで実行していますが、これでは動作せず、 ./reset.cgi と ピリオド,スラッシュを前に付けると動作します。 少し調べた結果、カレントディレクトリのパスが通っていないのかと考え、 /etc/profile の PATHに下記のように ピリオド を追加してリブートしたところ、 export PATH=$PATH:. ホームディレクトリなどで作成した シェルスクリプトは ./ なしで動くようになりましたが、 /cgi-bin ディレクトリ内の前述のような呼出しは動作しませんでした。 後は httpd.conf などの編集が必要なのかもしれませんが、 良く分かりませんでした。 申し訳ありませんが、教えて頂けると助かります。 よろしく御願い致します。

    • ベストアンサー
    • CGI