- - PR -
CGIのソースが表示される
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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を実行するには、どのような設定が必要なのでしょうか? 不足な情報が御座いましたら、ご指摘をお願い致します。 宜しくお願いします。 | ||||
|
投稿日時: 2004-02-27 18:12
どもも。がると申します。
この設定は「/home/boo/cgi-bin配下でcgiを有効に(実行ファイル として実行するように)してね」 っていうお願い(設定)です。 で。実はもう一つ ・CGIってのは拡張子に.cgiってついてるファイルだよ っていうのを教えてあげなくてはいけません。 これを教えないと [httpd]:cgiって…なんだろ? という状態になってしまいます。 基本的には AddHandler cgi-script .cgi ってのを書いてあげる必要があります。 これで「.cgiってきたらこいつはcgi-script(CGI)だよ」って 教えてあげることができるようになります。 httpd.confの中にコメントアウトされてたりしませんか? ちとチェックしてみてくださいませ。 | ||||
|
投稿日時: 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> 不足な情報が御座いましたら ご指摘宜しくお願いします。 | ||||
|
投稿日時: 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 とかして実行権限付けてやれば動くかも、、、 | ||||
|
投稿日時: 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は実行出来ておりません。 情報御座いましたら、ご返信宜しくお願い致します。 | ||||
|
投稿日時: 2004-02-28 19:11
こんにちは.
> You don't have permission to access /boo/cgi-bin2/boo.cgi ということは,httpd の実行権限で実行できるようになっていないのでは? httpd の実行 user を boo.cgi の owner にしたらいかがでしょう? | ||||
|
投稿日時: 2004-02-28 19:37
始めましてコンバンワ「kaz」様
情報有難う御座います。 httpdの実行userをboo.cgiのownerにすると言う事は 現在、httpd.confのuser行が「apache」となっておりますが この「apache」をboo.cgiファイルの所有者に変更するという事なのでしょうか? 教えてクンで申し訳御座いませんが 具体的な設定方法をご教授頂ければ有り難く思います。 宜しくお願い致します。 | ||||
|
投稿日時: 2004-02-28 22:01
httpd が cgi を実行するわけですから yes です. おそらく group も apache だと思いますので # chown apache:apache boo.cgi で良いのではないかと. |