• 締切済み

ApacheでCGI以外のデータも全部表示可能にしたい

ローカルサーバーとしてApacheを使っています。 CGIの動作ディレクトリをルートディレクトリ以下(localhost以下)に設定していて、それでCGIは動くのですが他のファイルにアクセスできません。AddHandlerの行にファイルタイプを追加することで対処可能だと聞きましたが、1つずつ設定するのではなく一括で全部のファイルにアクセスできるようにはできませんでしょうか?WWWサーバーとして使うわけではないのでセキュリティの問題は無視してくださって結構です。 あともうひとつ質問です。通常のウェブサイトではアドレスを「hoge/」のようにスラッシュ(/)で終えた場合、そのディレクトリにindex.htmlがあればそれを表示するようになっています。僕が使っているApacheもそうだったのですが、上で設定したディレクトリ(localhost)以下へアクセスする際、スラッシュで終えると403エラーが出てしまいます。アドレスをきちんと「/index.html」まで打てばアクセスできるようになりますが、ちょっと面倒です。せっかく今までは省略できたのに(ルートディレクトリに置いたcgi-binディレクトリ以下をCGI動作ディレクトリに設定していて、それを今回変えたのです)。今までどおりにアドレスを省略できるようにするにはどう設定すればよいのでしょうか? どうか宜しくお願いします。

  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

ScriptAlias ではなく Options のExecCGIでCGIを実行するようにしたらいいと思います。 httpd.conf------------------ DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs" ・ #ドキュメントルートのディレクトリでOptionsにExecCGIを追加 <Directory "C:/Program Files/Apache Group/Apache2/htdocs"> Options FollowSymLinks ExecCGI ・ #ファイル名省略時に表示するファイルをここに追加 DirectoryIndex index.html index.cgi ・ #ScriptAlias ~~ この行は先頭に#をつけてコメントにします ・ #CGIとして実行するファイルタイプを指定 AddHandler cgi-script .cgi -----------------

taku17
質問者

補足

回答ありがとうございます。 申し訳ありませんが、それぞれ該当する行番号を教えていただけませんでしょうか? それらしい行がいくつかあってそれか分からないので・・・どうかよろしくお願いします。

関連するQ&A

  • [Apache]/cgi-bin/以外でCGIを使いたい

    WindowsでCGIのテストをしているのですが、パスが例えば http://localhost/cgi-bin/test.cgi というようにすればcgiを実行することができるのですが、 http://localhost/test.cgi というようにして実行するには、どのように設定すればいいのでしょうか? たぶんhttpd.confの設定だと思うのですが・・。 ちなみに、インストールされているApacheのバージョンはわかりません。というのも、LaVieを買ったら、すでに C:\Program Files\Apache Group(以下) にインストールされていて、ヴァージョン情報がどこに書いてあるかわかりません。 それでもアドバイス頂けたらと思います。 また、これ(cgi-binを省略してアクセスする方法)について書かれているサイトもありましたらよろしくお願いします。

  • Apacheでのコンテントネゴシーエーションのやり方

    会社のApacheでローカルなサーバを動かしています。 ある日、拡張子なしでCGIを実行したいと思い立ちました。 具体的には、 http://localhost/ にアクセスしたときに、「index.*」を探して、結局「index.cgi」を実行するようにしたいです。 そこで、設定ファイル(httpd.conf)を次のように変更しました。 ・ドキュメントルートのOptionsにExecCGIとMultiViewsを追加 Options FollowSymLinks ExecCGI MultiViews ・DirectoryIndexにindexと指定 DirectoryIndex index これでできるかと思ったのですが、 http://localhost/ にアクセスすると「403 Forbidden」が表示されてしまいます。さらに、 http://localhost/index にアクセスすると「404 Not Found」となります。 普通に http://localhost/index.cgi としてアクセスすると、問題なくページが表示されます。 タイプマップを使えば実現できるのですが、一々「.var」ファイルを作成するのが面倒なので、一括で行いたいと思っております。 どこの設定を見直せばよろしいのでしょうか? ご教示ください。よろしくお願い致します。 OS : Linux debian 2.6.18-6-486 httpd : Apache/2.2.8 (Unix) perl : v5.10.0 built for i686-linux

  • apacheでCGIを動かす

    apacheでCGIを動かそうと思っていますが、どうしても出来ません。 環境は以下の通りです。 apache:1.3.35 OS:Windows2000 httpd.confの設定は 1.ScriptAlias /cgi-bin/ の行をコメントアウト 2.Alias /cgi-bin/ "E:/hoge/cgi-bin/"に変更してDirectoryタグを追加 3.AddHandler cgi-script .exeを追加 以上の3点をしましたが、新しく設定したディレクトリのcgiは動作しませんでした。 apacheのmodulesディレクトリの中にmod_alias.soというファイルが有りませんがそれは関係有るのでしょうか? また、apacheとtomcatの連携ということを以前行ったのですが、動かない事と関係あるのでしょうか? 文字数の関係で見づらい説明になっているかと思いますがよろしくお願い致します。

  • Apacheの設定について

    WindowsXP SP2 のローカルでCGIを動作させるために  http://www.adminweb.jp/apache/ を参考に下記を試みました。 (1)Apache ダウンロード・インストール・接続確認   「http://localhost/」へアクセスして「It works!」表示確認    (htdocs ディレクトリの index.html) (2)ActivePerlインストール    perl -v perl -h で動作確認 (3)CGI用エイリアスの設定    ScriptAlias /cgi-bin/ "C:/SERVER/Apache/cgi-bin/" (4)以下の test.pl を C:/SERVER/Apache/cgi-bin/ に設置    ------------------------------------------------------    #!C:/Perl/bin/perl.exe print "Content-type: text/html;\n\n"; print "<html><body><h1>test cgi</h1></body></html>\n";   -------------------------------------------------------    http://localhost/cgi-bin/test.pl の実行で    「Internal Server Error」になってしまいます。 どこの設定が間違っているのか見当がつきません。 何卒ご指導宜しくお願い致します。

  • Apache2.2 Aliasについて

    http://www.adminweb.jp/apache/docroot/index3.html 上のサイトを参考に、ドキュメントルート以外の場所へアクセスできるようにしたいんですが 参考サイト通りにやっても、うまく動きません。 httpd.confは <IfModule alias_module> Alias /labo/ "C:/Apache_Server/data/" <Directory "C:/Apache_Server/data"> Allow from all </Directory> ScriptAlias /cgi-bin/ "C:/Apache_Server/Apahce2.2/cgi-bin/" </IfModule> このように書いています。 (ServerRoot は "C:/Apache_Server/Apahce2.2" DocumentRoot は "C:/Apache_Server/Apahce2.2/htdocs"です) C:\Apache_Server\data に index.htmlを置き http://localhost/labo/index.html へアクセスしても Not Found The requested URL /labo/index.html was not found on this server. と表示されます。 環境はApache2.2、windows7です。 どこか間違っているところがあるのでしょうか? よろしくお願いいたします。

  • CGIが・・・いったい何が問題でしょうか?

    皆様よろしくお願いいたします。 以下の構成のディレクトリをvar/www/htmlに置き localhost/auct/index.cgiとしてindex.cgiファイルにアクセスしようといたしたのですが、500internal server errorとなり(エラーログ; premature end of script headers; index.cgi)、アクセスできません。 index.cgiにアクセスするとstart.shtmlが開く設定になっています。 なお、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 自分でもかなり調べたり、聞いたりしたのですが解決に至りませんのでどうかご助力お願いいたします。 ....├ [auct] ...........├ [ pl ] ...................├ [ lib ] ...................├ ap.cgi ...................├ category.cgi ...................├ cgi-lib.pl ...................├ comu.cgi ...................├ config.cgi ...................├ image.pl ...................├ index.html ...................├ jcode.pl ...................├ mail.cgi ...................├ mng.cgi ...................├ show.cgi ...................├ usr.cgi ...................└ wwwis.pl ...........├ auction.cgi ...........├ count_down.cgi ...........├ cron.cgi ...........├ index.cgi ...........├ master.cgi ...........├ search.cgi ...........├ start.shtml ...........└ temp.cgi 全てWindowsからasciiで転送してperlのパスも確認済み。 パーミッションはすべて755。 Windowsのapacheでは正常に動作。 httpd.confの設定; <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルト。

    • 締切済み
    • CGI
  • apacheのコンテンツ(html,cgi,php)にアクセスしようと

    apacheのコンテンツ(html,cgi,php)にアクセスしようとするとtomcatが応答してしまいます。 現在、CentOS5.4とApache2.2.3の環境でWEBサーバー構築の作業をしています 基本的な所はhttp://centossrv.com/apache.shtmlのサイト様等を参考にして、 設定を行い、テスト用のindex.htmlも用意しました。 早速http://localhost/index.htmlにアクセスした所、tomcatのインデックスページへと繋がってしまいました。 localhostを127.0.0.1やサーバー名に変更しても同様でした。 確認してみた所、現在同じ環境にtomcat5.5.23が存在しており、apacheと連携する様に設定されていて、 8080ポート指定無しでもtomcatが応答する様になっているようですが、 その設定の上で動いているWEBシステムもあるため、その辺りの設定をいじる事はできません。(検証用の一時的な変更もNG) tomcatとapacheの連携はそのままで、apacheのコンテンツにアクセスする為に、 apache側でどのような対応をしてやればよいか、ご教示いただけませんでしょうか。

  • WEBサーバーのapacheの設定について

    WEBサーバーをたてていますがつまってしまい困っています。 困っているのは、apache2.2系のルートディレクトリでディレクトリを指定するのではなく、プログラムファイルを指定できないことです。 つまりweb上からあるディレクトリの中の複数のファイルに直接アクセスするのではなく、必ずあるCGIファイルを通して間接的にアクセスしたいのです。 apache2.2におけるその方法がわからなくて困っています。 本当に困っています。 誰かご教授下さい。

  • Apacheでphpとcgiを使いたいのですが

    phpは問題なく使えましたが、cgiで問題があります。 今まではサーバーソフトにANHTTPDを使っていたのですが、phpを使う上で問題があったので汎用性のあるApacheに乗り換えました。するとphpはうまく動いた反面、cgiがうまく動作しなくなってしまいました。 ANHTTPDのときは、ローカルホスト以下のフォルダならどこであろうとcgiを含むすべてのファイルが使用できましたが、Apacheでは指定したフォルダ以下にcgiしか置けないみたいでした。そのフォルダ内にhtmlファイルなどを置くとアクセスできません。 この状態で使うとなると、cgiファイルだけその1箇所のフォルダ以下に集め、他のファイルを別のディレクトリに置かなくてはいけませんが、それでは1つのプログラムに必要なファイル類がバラけてしまうのでその方法は使いたくありません。 どうにかして1つのフォルダ以下でcgiとその他のファイルを扱えるように出来ませんでしょうか?また、僕が使っている今の方法では、cgiプログラムの1行目のパスを「C:/Perl/bin/perl」にしなくてはいけませんが、これもWebサーバー上にアップする際に書き換える手間がかかってしまいます。ANHTTPDの時は「/usr/bin/perl」「/usr/local/bin/perl」のような状態でも普通に使えました。この書き換えの手間を省く方法もありましたら情報いただければと思います。 以上です。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • cgi-binディレクトリ.............

    私のサーバーでは今までANHTTPDを使っていたのですが、apacheでもやってみようと思いまして、apacheに入れ替えたのですが、今まではcgi-binディレクトリ以下に掲示板のアップロードの画像やhtml・swfファイルなどをいっしょに入れていたのですが、apacheに入れ替えるとそれらのファイルがアクセス権がないと言われ観覧できません。 ANHTTPDと同様にcgi-binディレクトリ以下でも画像やhtmlなどを見れるようにするにはどうすればよいでしょうか? アドバイスよろしくお願いします。 (サーバーOSは WINDOWS XPです)