- PR -

CGIのソースが表示される

投稿者投稿内容
boo
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-27 16:58
初めて投稿致します。
LINUX初心者のbooと申します。
下記問題で悩んでおり、ご情報等御座いましたら
ご教授をお願い致します。

RedHad9の環境で現在CGIが実行出来る環境が既にあります。
この環境にCGI実行フォルダを新たに作る為
httpd.confへ下記設定を追加し再起動を行いました。

<Directory /home/boo/cgi-bin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

/var/www/cgi-bin内で動作実績があるCGIを
/home/boo/cgi-binへコピーしCGIを実行した所
ブラウザにCGIのソースがそのまま表示されました。
CGIを実行するには、どのような設定が必要なのでしょうか?

不足な情報が御座いましたら、ご指摘をお願い致します。
宜しくお願いします。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-02-27 18:12
どもも。がると申します。

引用:

booさんの書き込み (2004-02-27 16:58) より:
<Directory /home/boo/cgi-bin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>


この設定は「/home/boo/cgi-bin配下でcgiを有効に(実行ファイル
として実行するように)してね」
っていうお願い(設定)です。

で。実はもう一つ
・CGIってのは拡張子に.cgiってついてるファイルだよ
っていうのを教えてあげなくてはいけません。
これを教えないと
[httpd]:cgiって…なんだろ?
という状態になってしまいます。

基本的には
AddHandler cgi-script .cgi
ってのを書いてあげる必要があります。
これで「.cgiってきたらこいつはcgi-script(CGI)だよ」って
教えてあげることができるようになります。

httpd.confの中にコメントアウトされてたりしませんか?
ちとチェックしてみてくださいませ。
boo
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-27 18:50
初めまして「がるがる」様

大変わかりやすいご説明有難う御座います。
早速、httpd.confにAddHandler cgi-script .cgiを
一行追加しhttpdの再起動を行い。
CGIの動作を確認してみましたが、CGIのソースが表示されてしまいました。

/etc/www/cgi-binとフォルダ名が同じで混乱してきたので
/home/boo/cgi-bin を
/home/boo/cgi-bin2
に変更しました。
現在、httpd.confは以下の設定となっております。

<Directory /home/boo/cgi-bin2>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
AddHandler cgi-script .cgi
</Directory>


不足な情報が御座いましたら
ご指摘宜しくお願いします。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-02-27 19:21
httpd.conf 中の

AddHandler cgi-script .cgi .pl

こいつは、別に <Directory> セクション内に含まなくてもよろしいかと。

#
# AddHandler allows you to map certain file extensions to "handlers",
# actions unrelated to filetype. These can be either built into the server
# or added with the Action command (see below)
#
# If you want to use server side includes, or CGI outside
# ScriptAliased directories, uncomment the following lines.
#
# To use CGI scripts:
#
AddHandler cgi-script .cgi .pl

こんな説明文があるとこの下に書いてやったらエエかと。

後、CGI ファイル自身に

$ chmod 755 xxxxxxxx.cgi

とかして実行権限付けてやれば動くかも、、、
boo
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-28 18:22
始めまして「コブラ」様

情報有難う御座います。
<Directory>セクション内のAddHandlerを削除し
デフォルトで、AddHandler cgi-script .cgiがコメントアウト
されている行を見つけましたのでコメントを解除し
httpdを再起動しました。
またCGIファイルに755の権限を付けました。
この状態でCGIの動作を確認した所
ブラウザに下記メッセージが表示され、CGIが実行されませんでした。

Forbidden
You don't have permission to access /boo/cgi-bin2/boo.cgi on this server.
Apache/2.0.40 server at booserver port 80

コブラさんに教えて頂いた設定を行う事で
ソースが表示される状況はなくりましたが
CGIは実行出来ておりません。
情報御座いましたら、ご返信宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-02-28 19:11
こんにちは.

> You don't have permission to access /boo/cgi-bin2/boo.cgi

ということは,httpd の実行権限で実行できるようになっていないのでは?
httpd の実行 user を boo.cgi の owner にしたらいかがでしょう?
boo
会議室デビュー日: 2004/02/27
投稿数: 9
投稿日時: 2004-02-28 19:37
始めましてコンバンワ「kaz」様

情報有難う御座います。
httpdの実行userをboo.cgiのownerにすると言う事は
現在、httpd.confのuser行が「apache」となっておりますが
この「apache」をboo.cgiファイルの所有者に変更するという事なのでしょうか?
教えてクンで申し訳御座いませんが
具体的な設定方法をご教授頂ければ有り難く思います。
宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-02-28 22:01
引用:

booさんの書き込み (2004-02-28 19:37) より:
httpdの実行userをboo.cgiのownerにすると言う事は
現在、httpd.confのuser行が「apache」となっておりますが
この「apache」をboo.cgiファイルの所有者に変更するという事なのでしょうか?



httpd が cgi を実行するわけですから yes です.
おそらく group も apache だと思いますので
# chown apache:apache boo.cgi
で良いのではないかと.

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