はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/01/16
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

 CGIとcgi-binについて
日時: 2006/03/12 06:32
名前: daisuke   <lupin_ac@yahoo.co.jp>

こんにちは。いつもお世話になっております。

今回お聞きしたいのはこちらのHPで紹介されているMovable Type導入のところで
お聞きしたいことがあります。

事前条件でCGIが「cgi-bin」で実行できる事とあります。
こちらのCGIが「cgi-bin」で実行できる事というのがよくわからないのですが
どういったことを言うのでしょうか…?

くだらない質問で申し訳ないです・・・;;

■ コンテンツ関連情報

 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にまとめて自動保存してます。
 Re: CGIとcgi-binについて ( No.6 )
日時: 2006/03/12 23:23
名前: daisuke   <lupin_ac@yahoo.co.jp>

そうだったんですか〜
現状問題ないようでしたらこのまま続けようと思います。
それとご忠告ありがとうございます^^
サーバー管理者として気をつけていく次第でありますw

そして続けて問題点なんですが…
こちらの設定でMTを進めていたのですが、初期ログイン時という項目で
http://********/cgi-bin/mt.cgi
Got an error: データベース接続の設定に誤りがあります:
エラーが発生しました: Unknown MySQL server host '<localhost>' (3)
という画面になってしまいます…これはSQLサーバーの設定がおかしいのでしょうか・・・?

質問ばかりで申し訳ないです><



■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.