Webサーバの設定でファイルの拡張子を認識する方法は?

このQ&Aのポイント
  • Webサーバの設定でファイルの拡張子を認識する方法は何かご教授ください。
  • WebサーバでCGIスクリプトとして認識させたいファイルの拡張子を設定する方法を教えてください。
  • Webサーバのhttpd.conf内の設定で、コメントアウトされた拡張子を有効にする方法はありますか。
回答を見る
  • ベストアンサー

Webサーバの設定で…

全然知識がないのですが、ある企業で、Webサーバの管理をしている立場であり、HPを作成した部署からファイルを受け取り、 サーバにアップしているのですが、cgi-binフォルダ内の*.plファイルをCGIスクリプトと認識させて欲しいと言われました。 そこで、httpd.conf内の「AddHundler cgi-script .cgi」欄に「.pl」を追加入力しようとしたのですが、「AddHundler cgi-script .cgi」の前に 「#」がありコメントアウトされていました。しかし、実際のホームページでは、cgiプログラムのカウンタが正常に動いています。 これはどうしてでしょうか。他にcgiを実行可能な拡張子を設定するところがあるのでしょうか。 お分かりの方、ご教授をお願い致します。

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

  • ベストアンサー
  • h-kiku
  • ベストアンサー率50% (22/44)
回答No.1

httpd.conf 内の ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" で記述されたディレクトリ(/usr/local/apache/cgi-bin/)に cgi プログラムを置いているのではないでしょうか. ScriptAlias で指定されたディレクトリ内のファイルは (拡張子が何であろうと)すべて cgi としてみなされたはずです.

benny12
質問者

お礼

お返事が遅くなりましてすみません。h-kikuさんのおっしゃる通りでした。ありがとうございました。

関連するQ&A

  • 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拡張子だと動作しないのか?解決方法を教えていただけたら憂いしいのですが。よろしくお願いいたします。

  • apacheの設定について

    初めて投稿します。 私は、ある企業でSEをしており、まだどの分野においても初心者なのですが、この企業の情報システムの管理者の立場です。 ある部署が作成したホームページを確認用サーバにアップロードする作業をしていた際、このホームページ作成者から、 「『cgi-binディレクトリ中のみでCGIを実行する設定』以外に、さらに加えられた限定・制限などの有無を教えて欲しい (例えば、拡張子による実行制限など)」との質問を受けましたが、「cgi」や「apache」の知識が全くないもので、 どう回答したらよいかが全く分からず困っております。 検索して調べたり、本を購入し読んでみて、httpd.confファイルの設定を確認したり、変更してみて動作確認してみるという ところまでは分かりましたが、httpd.confファイルのどの部分を確認したら良いのか分かりません。 どう設定するかというのは、当社の運用方針によるものだと思いますが、どの部分をどのように確認すれば 良いのかを、どなたかご教授頂けたらと思います。宜しくお願い致します。

  • activeperl5.6が起動できない

    activeperl5.6が動きません。 activeperlをインストールして、apacheのhttpd.confの中身を本を参考に編集しました。 sampleのhello.plというファイルを自分の環境ではc:\www\cgi-binというフォルダーの中にいれ、 ScriptAlias /cgi-bin/ "C:/www/cgi-bin" <Directory "C:/www/cgi-bin"> AllowOverride None Options None AddHandler cgi-script .cgi .pl でcgiの実行を許可して AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl で拡張子とperlを関連付けています。 browserからたとえばhttp://localhost/hello.plを入力すると 実行が許可されていないとブラウザーで表示されます。 Forbidden You don't have permission to access /test.pl on this server. Apache/1.3.39 Server at localhost Port 80 アパッチのエラーログを見ると、 [error] [client 127.0.0.1] couldn't spawn child process: c:/

    • ベストアンサー
    • CGI
  • apacheでhttpsによって外部からアクセスさせたい

    windowsserver2008でapache2.2.6を動かしてます。 httpd.confとhttpd-ssl.confを編集して、 LAN内から http://server/index.html https://server/cgi-bin/printenv.pl でアクセスできます。 外部から http://domain.jp/index.html でアクセスできるのですが、 https://domain.jp/cgi-bin/printenv.pl だと404エラーが表示されます。 サーバー上でnetstat -aすると、443はLISTENになってます。 外部からhttpsによるアクセスを可能にするために確認すべきこと、 あるいは、アクセスできる方法をご存じの方教えてください。

  • fedoracore6 webサーバー構築設定について

    自宅サーバー立ち上げの際でwebサーバー設定を行った中で、「httpd」サービスが再起動出来なくなり困っています。どなたか設定のやり直し方法をご教授願います。現在、httpd.confファイル設定が間違っていて、起動出来ない状態かと推測していますので、再インストールしてやり直そうと考えます。httpd.confファイル設定デフォルトログを取っていかなかったので、最初から設定やり直しが出来ない状態です。 httpd.confファイルのアンインストール方法を教えてください。 ・OSソフト:linux fedoracore6 ・ファイル: httpd.conf

  • ApacheでSorryサーバを作りたい

    どんなURIを指定しても用意したページ(sorry.html)を返すSorryサーバを作りたいのです が上手く出来ません。 例えば、 http://192.168.1.5/aaa.html http://192.168.1.5/cgi-bin/aaa.cgi http://192.168.1.5/aaa/aaa.html のアクセスはすべて、 http://192.168.1.5/sorry.html の内容をクライアントに返したいです。リダイレクトで再要求でも良いです。 【httpd.conf】 1.Redirect permanent /foo http://192.168.1.5/sorry.html 2.ErrorDocument 404 http://192.168.1.5/sorry.html このような設定を入れてみましたが、うまくいっていません。 HTTP 404 -ファイル未検出 となります。 ともかく、httpd.confでSorryサーバの作り方を教えて頂けないでしょうか?

  • Apache2.0で「#exec」コマンドを許可したい

    アクセスありがとうございます。 先日の私の質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=447488 は無事解決いたしました。 どのような原因だったのか知りたい方はその旨を、お書きください。 また今回も、よろしくお願いします。 CGIで簡単なアクセスカウンターを作成したのですが動作しません。 「index.html」の中に<!--#exec cmd="./counter.pl"-->のコマンドを記述しました。 「counter.pl」の内容は「counter.dat」にインクリメント後その結果を表示するというものです。 「Linux」のコマンドラインからの「counter.pl」のテストでは「syntax OK」でした。 またコマンドラインから「counter.pl」を実行すると実行回数分の数字が表示されます。 また「AddType text/x-server-parsed-html .html 」という内容の「.htaccess」ファイルを同じディレクトリ内に作成しました。 各ファイルのパーミッションは「index.html」と「.htaccess」が「rw-r--r--」で「counter.pl」が「rwxr-xr-x」で「counter.dat」が「rw-rw-rw-」です。 本来ならば、これでアクセスカウンターが作動するはずなのですが、なぜか動きません。 おそらく「httpd.conf」の内容を書き換えることにより動作するようになるのだと信じ、いろいろ変更してみましたが、うまくいかないので結局、今はデフォルト設定に戻しました。 また、このスクリプトは学校のサーバに置いた場合は問題なく動作します。 そこで学校の「httpd.conf」を、そのまま自宅サーバに適用したりもしましたが「Apache」のバージョンの違いか、またはその他の原因か「httpd」が起動しませんでした。 しかし、このファイル以外に原因は考えられません。 おそらくアクセスカウンターを動かすには「httpd.conf」の色々な箇所を変更する必要があるのだと思っているのですが、いったい、どこと、どこと、どこと、どこを、どのように書き換えればいいのですか。

  • Server error! Error 500

    RedHat7.3, apache-2でCGIが動くようにしたいのですが、 httpd.confをいじったりいろいろやってるのですが Server error! Premature end of script headers: tmp.cgi Error 500 と言われてしまいます。 Object not found!(Error404)ではないのでcgiファイルがあることは認識されてるようですが、 ”早すぎる終わり”をどうやったら回避できますか? 教えてください。

  • OSXでcgi

    OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?

    • ベストアンサー
    • Mac
  • Mac OSX のWeb共有でサーバを立ち上げたいのだが、立ち上がらない...

    Leopardに組まれているApache2.2でサーバを立ち上げる作業をしています。URLに「127.0.0.1/index.html」を入れると、無事、htmlページが表示されます。現時の設定は次のようになっています。  /etc/apache2/users/USERNAME.conf で(USERNAMEは私の名前を使用)、 ・<Directory "/Users/USERNAME/Sites/">---</Directory> 内に  AddHandler cgi-script .cgi 及び Options Includes ExecCGIを追加 ・/usr/local/bin (を作り)perlのhard linkを作成してあります。 CGIファイル(hello!.cgi)も/usr/local/bin においてあります。hard linkの元は /usr/bin/配下にあります) 他方、/etc/apache2/httpd.conf では次の設定になってます: ・ServerName が 127.0.0.1 ・ServerRootが /usr/ (これが誤り?) ・DocumentRoot が /usr/Apache2.2/htdocs (これも変?) ・User 及び Groupはともに www 先達にお願い! 次のことを教えて下さい。 1.その他、設定事項で欠落している事項があるのか? 2.127.0.0.1/index.fileはどのdirectoryにあるか? 3.Terminalで 「cd ~」と入力すると、/Users/USERNAMEとなって上のDocRootと合わないのはなぜか? 4.hello!.cgiを表示するにはURLをどうすればよいか? 宜しくお願いします。