- PR -

Apache での ヴァーチャルホスト(CGI設定)

投稿者投稿内容
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-06-08 12:22
引用:
DocumentRootのディレクトリのオプションにもしっかりExecCGIがついていました。


あれ ?
引用:
http://www.******.com/~++++++/の場合は、CGIがうごきません。


引用:
http://www.第一ドメイン.com/~****/
http://www.第二ドメイン.com/
という形ですね。


なのですから、「第一ドメイン」側のバーチャルホスト設定として、“/home/++++++/public_html”(もしくは“/home/*/public_html”)ディレクトリに、ExecCGIオプションがついているかどうかというお話ではないでしょうか ?
※これまでの流れから、UserDir を使っているものとして話を進めます。

[ メッセージ編集済み 編集者: angel 編集日時 2005-06-08 12:24 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-06-08 12:35
あともう一つ。

CGIが動かないというのは、

・CGIプログラムの中身がブラウザに表示される ( cgiハンドラが効いていない )
・500番台等のエラーになる

のどちらでしょうか ?
UserDir + CGI の場合、suEXEC も関わってくるかもしれないので、後者の場合であれば、しっかりエラーログを見ないと厳しいですね。

P.S.
話がそれますが、多数のユーザがコンテンツを置けるサーバで、suEXEC 無しで、UserDir + CGI を使う ( 誰でも CGI が設置できる ) 訳ではないですよね ?
これはセキュリティ的に問題ですから…。
KEN
会議室デビュー日: 2005/06/08
投稿数: 1
投稿日時: 2005-06-08 15:30
はじめまして。

/cgi-bin以外でスクリプトを動作させる場合は下記のコメントアウトが必要だと思いますが、いかがでしょう。

#AddHandler cgi-script .cgi

あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2005-06-08 16:10
CGI以外のコンテンツは正しく見えていますか?

名前ベースのバーチャルホストの場合、両方のドメインに対してVirtualHostを定義しないと一番上のVirtualHostが優先的に使用される仕様となっているので・・・。

あと、動作しない方でエラー等は発生していないのでしょうか?
kami
ベテラン
会議室デビュー日: 2004/08/21
投稿数: 95
お住まい・勤務地: 大手町
投稿日時: 2005-06-08 17:12
皆様、沢山の返信ありがとうございます。

今現在確認しているCGIのエラーというのが カウンタ になります。
ですので、
http://www.******.com/~++++++/ でアクセスした場合には×の画像なのかな?
画像などが表示できない時にでるあれがでます。
それ以外のHTML分に関しては素直に表示されます。
http://www.******.com/に関してはカウンタCGI、HTML分共に正常動作しております。

ここまで皆様に返信していただきありがたく思います。

で、今回問題になっているドメインが会社で入っているところですので表記できません。
ので、自分の所でだします。

***追記、アドレスの前に数字を入れたらリンクがつかなかったので。***
@、
http://www.yakudatu.info/
A、
http://www.yakudatu.info/~yakudatu/

です。@でアクセスがあった場合に/home/yakudatu/public_html/の物を表示させるようにヴァーチャルで説明したとおりです。
CGIをどこでも動かせるようにしているのは見ていただければわかるかもしれませんが
CGI-BINだけでは不便との声が多かったので^^;
セキュリティ的には結構つらいのもわかってはいますが、大半の方の意見でしたので
まぁ〜・・・好き好んで落とす人はいないと信じてどこでもOKという形になりました。

で、今現在はカウンタしかないので、サーバーエラー番号についてはチャットや掲示板などを設置して試して見たいと思います。

ちょっと、予断かもしれませんが
元々はRedHat9でした。で、ホワイトボックスに移行する際に
httpd.confはそのまま引き継いで特に変更点なしで行いました。

RedHatでは、どっちのアクセスでもCGIが動いていたのですが
ホワイトボックスにしたら、今回のようなことになりました。
Apacheのヴァージョンは両方2ということだけで、2.**の**については確認していませんでした。
その時の最新版でいれてましたので、特に気にしていませんでした。

以上です、よろしくお願い致します。

[ メッセージ編集済み 編集者: kami 編集日時 2005-06-08 17:14 ]
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2005-06-09 09:49
引用:

kamiさんの書き込み (2005-06-08 17:12) より:

@、
http://www.yakudatu.info/
A、
http://www.yakudatu.info/~yakudatu/



2つのバーチャルホストって同じFQDNなのでしょうか。であればできませんよ。
名前ベースのバーチャルホストはHTTP Requestの際に送られてくるHostヘッダを参照することにより振り分けていますが、両方とも同じであれば振り分けようがありません。

その場合は、リダイレクト (301) を使用して、http://www.yakudatu.info/にアクセスされたら自動的にhttp://www.yakudatu.info/~yakudatu/へ転送するくらいしか内容に思いますが。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-06-09 10:21
おはようございます。
詳細な ( 要点を押さえた ) 環境情報や設定内容やログが無いので、今の所何とも言えないのですが…。

思い通りに動作していた httpd.conf をそのまま持ってきたのであれば、問題は設定ではなく環境にあるように思います。
アクセスログ・エラーログの確認が一番ではないでしょうか ?

ところで…、
引用:
今現在確認しているCGIのエラーというのが カウンタ になります。
ですので、
http://www.******.com/~++++++/ でアクセスした場合には×の画像なのかな?
画像などが表示できない時にでるあれがでます。


引用:
で、今現在はカウンタしかないので、サーバーエラー番号についてはチャットや掲示板などを設置して試して見たいと思います。


「×の画像」ということだけでは、「適切な画像データではない」ということしか分かりませんから、CGI の URL を直にブラウザに打ち込んで確認した方が良いように思います。
( HTMLデータ中に <img src="URL" 〜 /> の形で埋め込まれているのでしょうから。)
エラーの場合、エラー番号を確認できますし。

また、他の CGIプログラムを試すのであれば…、簡単なものを作った方が早くはないでしょうか…。
【簡単な CGIの例 … hello.cgi】
コード:
#!/bin/sh
echo 'Content-type:text/plain'
echo
echo 'Hello, world!'


以上、ご参考まで。
kami
ベテラン
会議室デビュー日: 2004/08/21
投稿数: 95
お住まい・勤務地: 大手町
投稿日時: 2005-06-09 11:50
おはようございます。
返信ありがとうございます。

angel様のおっしゃるとおり、CGIのアドレスに直でアクセスすれば早いですね。
すっかり忘れておりました。
で、やはりというか500のサーバー内部エラーでした。

あんとれ様
FQDNについて、e-word、@itのページで解説されていましたので
読みましたがいまいち把握までいたっておりません。
他のサイトなども探し把握しようと思います。

また、エラーログなどに関して最初から見直そうと思います。
時間がかかると思いますのでまた進展しだい書き込ませていただきます。

ありがとうございました。
またよろしくお願い致します。

スキルアップ/キャリアアップ(JOB@IT)