- PR -

apacheについての質問

1
投稿者投稿内容
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2004-04-25 02:34
質問です。
apachでサーバを構築しているのですが、再インストールしなおした結果、
私の設定がおかしいのかhttp://localhost/cgi-bin/でCGIを設置しても
読み込まれません。
CGIがまったく読み込まれません。http://localhost/~○○/cgi-bin/は
問題なく読み込まれるのですが・・・
何回も見直しているのですが、どこなのかさっぱり。

どういうことなのか誰か分かる人教えてください。



[ メッセージ編集済み 編集者: jin 編集日時 2004-04-25 11:22 ]
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-04-25 03:32
こんばんわ.
引用:

jinさんの書き込み (2004-04-25 02:34) より:

私の設定がおかしいのかhttp://localhost/cgi-bin/でCGIを設置しても
読み込まれません。
CGIがまったく読み込まれません。http://localhost/~○○/cgi-bin/は
問題なく読み込まれるのですが・・・


httpd は門外漢で不得手ですが,まず入口から.
CGI が「読み込まれない」とは,
CGI の中身が表示されるけど実行されない
CGI そのものが "Not Found"
のどちらでしょうか?
また,その CGI は apach という user で実行できる状態ですか?
そもそも,その CGI は実行すると期待通りの結果が得られますか?
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2004-04-25 03:42
kazさん早速ありがとうございました。

userdirつまり/~ でcgiを設置するとCGIは動きます。(正常に)
userdirを使用しないでhttp://localhost/cgi-bin/○○.cgiとすると
ページがありませんと表示されてしまいます。
私の設定がおかしいのだと思うのですが、どこがおかしいのか
さっぱり分かりません。本を見てやったのですが、なぜでしょう?
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-04-25 04:00
引用:

jinさんの書き込み (2004-04-25 03:42) より:

userdirつまり/~ でcgiを設置するとCGIは動きます。(正常に)


間違っていたらゴメンナサイ.
ScriptAlias って,CGI を置く場所を限定するんじゃなかったでしたっけ?
実際に CGI を置く場所を fullpath で指定したらどうなります?

kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2004-04-25 04:58
こんばんは(?)
kalzeと申します。
私は修行中の身で、あまり詳しくは無いのですが。

299行目ですが、ここは通常デフォルトの設定を記述するところではないでしょうか?
コード:
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>


となるような気がします

314行目からのところですが、ここはDocumentRootの設定を記述する場所ではないでしょうか?
そして386行目の部分からがUserDirの場合の設定だとおもいます。
現在の設定ファイルでは、すべて/home/*/public_htmlに関して設定されていますが、
意味あるんでしょうか?

cgi-binディレクトリにCGIの実行属性を与え、public_htmlには与えない。
/home/hoge/public_html
/home/hoge/cgi-bin
という構造にしておいて、このままではpublic_html以下しかアクセスできないので、
aliasで/home/hoge/cgi-binに飛ばすものだと思っていたのですが。

/home/hoge/public_html/cgi-binという構造にした場合、
ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/"
と設定してある場合、
UserDirでいうと
http://www.example.com/cgi-bin/cgi.cgi
は、別にAliasで飛ばさなくても、/home/hoge/public_html/cgi-bin/にアクセスできるんじゃないでしょうか?

<Directory /home/*/public_html/>
の設定が、3回なされていて、そのどれも異なるわけですが、
どれが正しいのでしょうか?(設定したいこととして)

2回目のOptionsではExecCGIが定義されていますが、
3回目では定義されていませんし。

#私のツッコミが正しいのかどうか有識者の方、さらにツッコミをお願いします

kalze
ぬし
会議室デビュー日: 2003/10/23
投稿数: 406
お住まい・勤務地: 東京・東京
投稿日時: 2004-04-25 05:15
で、問題のCGIに関する件ですが、
ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/"
となっていますが、
http://www.example.com/~hoge/cgi-bin/sample.cgi
でアクセスした場合、UserDirにより、*がhogeに置き換えられ、
/home/hoge/public_html/cgi-bin/sample.cgi
にとばされますが、
http://www.example.com/cgi-bin/sample.cgi
とアクセスした場合、
/home/*/public_html/cgi-bin/sample.cgi
*を置き換えが発生せず、そのままの/home/*/public_html/cgi-bin/sample.cgi
にアクセスしようとするが、/home/*/なんてないので、アクセスできずに終わるということではないのでしょうか?

http://httpd.apache.org/docs/howto/cgi.html
この辺参照なのかな

先ほど指摘した点があるので、どうしたいのかがいまいち私にはわからないので、
改善策がわかりません。

参考になれば。
#私の認識が間違っていることは十分に考えられますけど・・・
jin
ベテラン
会議室デビュー日: 2004/03/11
投稿数: 96
投稿日時: 2004-04-25 11:21
有識者の皆さんありがとうございました。

原因は
ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/"
これでした。これでいくと思っていたのですが、
絶対参照にしたところ
ScriptAlias /cgi-bin/ "/home/hoge/public_html/cgi-bin/"
うまくできました。

ご迷惑おかけしました。
1

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