Re: CGIとcgi-binについて ( No.1 ) |
|
- æ¥æï¼ 2006/03/12 10:01
- ååï¼ house
<info@shiawase-home.com>
- 参照: http://www.shiawase-home.com
- はじめまして。
MT自体がCGIのプログラムです。 ですからMTを導入する場合には、 アパッチの設定(/etc/httpd/conf/httpd.conf)で MTを設置しようとしているディレクトリで CGIが動作するようにしてあげる必要があります。
普通は、cgi-binというディレクトリに 各種CGIを設置する場合が多いので cgi-binでCGIが動作する必要がある、と記載されているのだと思います。
**********
別にCGI自体はcgi-binでなくても アパッチの設定で他のディレクトリでCGIが動作するように指定してあげれば どこにおいても動作自体は問題無いです。 (セキュリティについては問題がありますが・・・)
ではなぜcgi-binで動作をさせる人が多いのかというと、 それはセキュリティの為です。 一般的に初期値のウェブサイト設置ディレクトリ(DocumentRoot) は
/var/www/html です。
一方CGI設置ディレクトリは /var/www/cgi-bin です。
万が一ウェブの閲覧ユーザーがハッキングをしてきた場合、 /var/www/html 以下のディレクトリをあらされてしまう可能性が高いので /var/www/html 以下に実行プログラムである CGIプログラムを設置するのは危険です。 そこで、/var/www/html 以下のディレクトリではないところにCGIを設置しよう、 ということで /var/www/cgi-bin にプログラムを置くように設定します。 ただし、そうするとウェブ閲覧者がアクセスできるディレクトリは /var/www/html 以下になるので /var/www/cgi-bin にアクセスできなくなります。
そこで、アパッチの設定(/etc/httpd/conf/httpd.conf)で ウェブユーザーが一見 (http://www.******.com/cgi)という アクセスをしてきた場合、 それは /var/www/html/cgi ではなくて /var/www/cgi-bin ですよぅ、と設定してあげる必要があるのです。
上記設定は、アパッチのデフォルトでコメントアウトされていると思うので そのコメントをはずしてあげれば簡単に設定出来ます。
ただし、いずれにしても、MTを設置しようとするディレクトリにて CGIが動作するように
AddHandler cgi-script .cgi だとか Options ExecCGI FollowSymLinks Includes を 設定する必要があります。 ここの部分は、こちらのサイトでも詳しく説明されていますので、そちらを参照すると良いと思います。 http://kajuhome.com/apache.shtml#n04
|
Re: CGIとcgi-binについて ( No.2 ) |
|
- æ¥æï¼ 2006/03/12 10:25
- ååï¼ 管理者
- daisukeさん、houseさん、こんにちは。
> houseさん いつも閲覧・投稿をありがとうございます。 また、当方に代わって詳細な説明をして頂きましてありがとうございます。 回答文が補足する部分が見当たらない位、完璧です。
> daisukeさん Movable Type導入の前提条件でこの様な書き方をして混乱させてしまい、申し訳ありません。 せめて、houseさんがかかれた様にラベルまでのリンクを付与して紹介すればと思います。 (近い内に、修正しておきます。)
当方での『Movable Type導入』紹介は「/var/www/html/cgi-bin/」配下で実行する物として紹介しているので 前提条件が当サイトで紹介している『Webサーバの構築』に沿って説明を簡略化しています。 勿論、houseさんが書かれた様に「/var/www/html/cgi-bin/」以外にCGIを実行する事も可能です。 『Movable Type』でブログを公開されている方は、ドキュメントルートを「/var/www/html」でCGIを実行可能 にさせて運用しているのが多いみたいですね。
|
Re: CGIとcgi-binについて ( No.3 ) |
|
- æ¥æï¼ 2006/03/12 13:21
- ååï¼ daisuke
- こんにちは。いつもありがとうございます^^
早速上記のとおり設定を見直して見たところMTの動作に成功致しました。
しかし、CGIが動作しているディレクトリー と言う所をみると /var/www/cgi-bin となっており、/var/www/html/cgi-binというこちらのHPで紹介 されている内容と異なってしまいました。基本こちらのHPで解説されて いるように設定をしていたのですが;; でもこれでも動くようでしたらこれでも大丈夫ですかねw セキュリティが心配なようですが・・・w
|
Re: CGIとcgi-binについて ( No.4 ) |
|
- æ¥æï¼ 2006/03/12 18:11
- ååï¼ 管理者
- daisukeさん。
あまりシビアにならなくても心配要らないと思いますよ。 昔(4〜5年位前)は、CGI(Perl)を動かすのを別パスに設けセキュリティを強化していました。 昔のBIGLOBEなどは、CGIを動かすサーバが別になってユーザなどが配置等に四苦八苦したという記事をよく見ましたが・・ (セキュリティ+処理の分散化で分けたと思いますが・・)
apacheのデフォルトで「/var/www/cgi-bin」となっているのは、万一乗っ取られた場合(また、CGIスクリプト等のバックドアなど) パスを一つ上に置く事により「/var/www/xxx」は。root所有となっているので消されたり改竄されるのを防ぐ様にしています。 (apache(Webサーバ)は、プロセス自身がapacheで動く為、root所有は変更できない為です。)
「/var/www/cgi-bin」であろうと「/var/www/html/cgi-bin」常日頃からバックアップを取って、セキュリティを 重視していればそれほど気にしなくても良いと思います。
むしろ、セキュリティホールなどのアップデートを気にしてスクリプトを最新にする方に気に留めてください。 また、名のないスクリプトを無闇に実行しない(公開させない)様にして下さいね。
|
Re: CGIとcgi-binについて ( No.5 ) |
|
- æ¥æï¼ 2006/03/12 18:29
- ååï¼ house
<info@shiawase-home.com>
- 参照: http://www.shiawase-home.com
- お世話になります。
正直言いますと、実は私のCGIパスは HTML以下にあったりします。
理由としては、ドメインを複数所有してサーバーを運用する際に、 cgi-bin を別パスに設置すると、 アパッチの設定がうっとうしくなるからです。
好ましくは無いと思いつつ、 そんな設定になっています。
勿論、バックアップはガンガン取っていますので、 万が一の際にはすぐに復旧できるようにしています。
****
その他私の小技としては htmlのパスを/var/www/html ではなくて 全く別の場所にしていたり、(例えば/web/www/html とか) MYSQLのデータも /var/lib/mysql に設置しないで 別の場所にしています。(例えば/data/mysql/とか) 良いのかどうかは分からないですが、 更にウェブ用のデータは他の設定ファイル用のデータとは 別のパーティションにして保存しています。
それで、更に別パーティションのデータのバックアップを cronでtarにまとめて自動保存してます。
|