AddHandler cgi-script .cgiを有効にして.htaccess の中にOptions +ExecCGIAllを記述してhttpd.confのowOverride Options としてcgiを実行しようとしたら下記エラーになりました。
[Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed
[Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi

それで、
#AddHandler cgi-script .cgi
として、
<Directory /home/*/WWW>

Options ExecCGI

</Directory>
にしたら
cgiのソースが見えてしまいます。

cgiのPermissionsは755になっております。

ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/を記述してOptions ExecCGIにしてもソースが見えてしまいます。

cgiを実行させるのにはどうすればいいのでしょうか??

(以前Linuxを良くわからないときに(今でも解っていませんが・・)同じような質問をここに挙げてその時は単純な自分の間違いで動かなかったのですが単純なソースのミスでした。それで今度はLinuxをインストールをしなおしたら動かなくなったのです。
http://apachetoday.com/news_story.php3?ltsn=2000 …
等覗いてそれをやっても動かないのです。
多分単純なことなのかもしれませんが行き詰まって困っております。

昨日の質問でユーザーのHTMLが見れないのはURLの指定で最後に'/'をつければ問題なく見れました。今はイントラネットでLinuxを動かしているのですが、実際のインターネットでは最後の/は入れたり入れなかったりでも問題なく見れるのですが、正しくは最後に/を入れるみたいですね。)

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>それで、


>#AddHandler cgi-script .cgi
>として、
><Directory /home/*/WWW>
>
>Options ExecCGI
>
></Directory>
>にしたら
>cgiのソースが見えてしまいます。
この手の設定ファイル一般に言えるのですが、
先頭の# は、コメントを表します。
ので、
#AddHandler cgi-script .cgi
なる記述は、コメント(=有効な記述として読んでくれない)として解釈されます。
ので、今回のhttpd.conf に
AddHandler cgi-script .cgi
=「ファイル名の末尾に.cgi がついているファイルはCGIスクリプトとして扱う」
の設定がされているかどうかは、この時点では実は不明です。
(ここでは設定されていません。が、他の場所にあるかもしれません)
もし、.htaccess 内に
AddHandler cgi-script .cgi
と書いてあれば、.htaccess での設定が有効になるように設定されていれば、
(AllowOverride) 設定は有効になると思われます。

/cgi-bin/ 以下のファイルがデフォルトで実行可能になる、というのは、
そのcgi-bin にAlias されたディレクトリについて、<Directory> でCGI が実行可能に設定されているからそうなる話であって、そのAlias を変更した状態では話が変わってくるような気がします。

>cgiのPermissionsは755になっております。
>ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/
>を記述して Options ExecCGIにしてもソースが見えてしまいます。
上記のとおり、コメントになっているために、設定がされていないのではないか、とのご回答があったのだと思います。

長い前置きでしたが、以下に本題を。
状況がつかめないので、可能性があるとしか言えませんが...。

>cgiを実行させるのにはどうすればいいのでしょうか??

>[Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed
>[Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi

このエラーメッセージって、cgi 自体は実行されたけど、その実行されたcgi がパーミッションのエラーを起こした場合にもこのように出る気がします。
CGI の実行ユーザ(httpd の実行ユーザか、httpd.conf 内に書いてあるUser/Group が有効ならば、そのユーザ/グループ)でアクセスできるファイルのパーミッションになっているでしょうか?

参考URL:http://www.srs.ne.jp/~north/netdaemon/httpd_conf …

この回答への補足

>先頭の# は、コメントを表します。
>ので、
>#AddHandler cgi-script .cgi
>なる記述は、コメント(=有効な記述として読んでくれな
>い)として解釈されます。
#がコメントなのはわかっております。
GNOMEのapacheの設定で初期設定したのですが、(そのときExecCGIは有効にしておりました)展開されたhttpd.confのAddHandler cgi-script .cgi はコメントになっておりました。
ScriptAliasで記述したフォルダがデフォルトでCGIを実行するときAddHandler cgi-script .cgiは関係ないと思ったのです。(HPでみたapacheのマニュアルにもScriptAliasで記述したフォルダでOption ExecCGIでCGIは動くと書いてあり、AddHandler cgi-script .cgi は任意のフォルダ下の、.htaccessによるCGI実行をさせたいときに使うと書いてあると私は解釈しました。)
ようはtailkuppaさんはCGIを動かすときはAddHandler cgi-script .cgiが必須だと云われているのですね??

>[Thu Nov 15 11:16:54 2001] [error] (13)許可がありません: exec of /home/jin/WWW/cgi-bin/tslbbs.cgi failed
>[Thu Nov 15 11:16:54 2001] [error] [client 192.168.0.9] Premature end of script headers: /home/jin/WWW/cgi-bin/tslbbs.cgi
CGIを実行しようとしてでたメッセージなのは理解できます。apacheのUser・Groupeはnobodyになっております。
jinユーザーは何処のグループにも属していません。
素朴な疑問なんですが、IEでCGIを起動するのにそのLinuxのユーザーまたはグループでなければ起動がかからないのですか??(なら世間の掲示板やチャットは誰でも何故使用できるのでしょうか??)
パーミション755ってことは後の5で誰でも読込と実行が出来ることではないのですか??

(前インストールしたときにCGIがユーザーフォルダで動いたときはOption ExecCGIとするだけで動いたようなきがします・・・が思い違いでしょうか??)

補足日時:2001/11/16 19:58
    • good
    • 0

><Directory /home/*/WWW>


>Options ExecCGI
></Directory>

とりあえず、CGIが cgi-bin にあるのなら、ディレクトリの指定は

  "/home/*/WWW/cgi-bin"

じゃないでしょうか?

この回答への補足

ScriptAliasで/cgi-bin/ /home/*/WWW/cgi-bin/を記述しているのですが・・・

上の記述はUserDirの記述です。

ScriptAliasで/cgi-bin/があればそこが動くようにマニュアルにあるのですが・・・???

補足日時:2001/11/16 08:02
    • good
    • 0

>それで、


>#AddHandler cgi-script .cgi
>として、
><Directory /home/*/WWW>
>Options ExecCGI
></Directory>

#AddHandler cgi-script .cgi
とコメントアウトしたら当たり前、ソースが見えてしまいますよ。
AddHandler cgi-script .cgi
として、#をはずしたら言いと思います

この回答への補足

#AddHandler cgi-script .cgi
はhttpd.confのデフォルトです。この場合デフォルトのScriptAliasの/cgi-bin/ ではCGIは動作するとapacheのマニュアルにありますが??
AddHandler cgi-script .cgi
は.htaccessをつかってフォルダ毎のコントロールに使うものだとマニュアルを読みまして受け取ったのですが私の理解能力が不足しているのでしょうか??

私の知りたかったのはではどうすれば動くかということを伺いたかったのですよ!

補足日時:2001/11/15 21:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q/var/spool を/homeに移動できる?

お世話になります。

TurboLinux7.0でサーバー管理(Web・メール・DNS)を行っているのですが
急にメール送信が出来なくなったため調べてみたところ
/varの要領が100%になっており、さらに調べたところ
/var/spool/qmailscan/quarantine/new/
の下に「サーバー名+数字(タイムスタンプ?)」というファイルが
大量に生成されていたために/varが100%になったみたいです。
これはQmailscanの結果見つかったウイルスメールということで
とりあえず削除することで状態は回復したのですが
この先今回のように大量にウイルスメールを関知したときに
また同じような現象が起こっては困るということで

/var/spoolを/home/spoolに移動することを検討しています。
/varに別のディスクをマウントしてやれば済む話ですが
予算の関係上なるべくやりたくないようです(^^;
ということで教えていただきたいのですが
/var/spoolを/home/spoolへ移動するという作業は可能でしょうか。
可能な場合はどのような手順で移動すれば良いかご教授いただければと思います。

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

お世話になります。

TurboLinux7.0でサーバー管理(Web・メール・DNS)を行っているのですが
急にメール送信が出来なくなったため調べてみたところ
/varの要領が100%になっており、さらに調べたところ
/var/spool/qmailscan/quarantine/new/
の下に「サーバー名+数字(タイムスタンプ?)」というファイルが
大量に生成されていたために/varが100%になったみたいです。
これはQmailscanの結果見つかったウイルスメールということで
とりあえず削除することで状態は回復したのですが
この先今回のように大...続きを読む

Aベストアンサー

mkdir /home/spool
cp -a /var/spool/* /home/spool
rm -rf /var/spool
ln -s /home/spool /var/spool

とかでいいのでは?

Qcgi-binディレクトリ内のhtmlを有効にしたい

度々お騒がせしております。
本日は、Apacheの設定について
伺いたく投稿させていただきました。

apacheの設定を終え、
一通り動作するようにできたのですが、
cgi-binディレクトリに置いたhtmlや
jpg,gifといったcgi以外のファイルが
表示されません。

httpd.confによる
cgi-binディレクトリの設定でどうにかなるものと思い、
色々調べてみたのですが、
いまいち設定方法がわかりません。

以下、私の環境です。
Apacche 1.3.20
htmlディレクトリ /var/www/html/ (775)
cgi-binディレクトリ /var/www/html/cgi-bin/ (775)
現在のcgi-binディレクトリの設定
ScriptAlias /cgi-bin/ "/var/www/html/cgi-bin/"
<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

以上、どうかよろしくお願いいたします。

度々お騒がせしております。
本日は、Apacheの設定について
伺いたく投稿させていただきました。

apacheの設定を終え、
一通り動作するようにできたのですが、
cgi-binディレクトリに置いたhtmlや
jpg,gifといったcgi以外のファイルが
表示されません。

httpd.confによる
cgi-binディレクトリの設定でどうにかなるものと思い、
色々調べてみたのですが、
いまいち設定方法がわかりません。

以下、私の環境です。
Apacche 1.3.20
htmlディレクトリ /var/www/html/ (775)
cgi-binディレクトリ ...続きを読む

Aベストアンサー

ScriptAlias設定とは、そういう挙動をするものと認識していますが、、、
500 Internal Server Errorになると思います。


ScriptAlias以外の場所でOprions +ExecCGIすれば混在できると思います(多分?)。

# 違っていたらごめんなさい、、、

Qcgi-bin配下のファイルに読込許可を!

最近、Apache2を使い始めたばかりで設定がよくわかりません。

Apacheの設定ファイルで、httpd.confというファイルがありますが、その中で、
ScriptAlias /cgi-bin/ "C:/Apache2/htdocs/cgi-bin/"
<Directory "C:/Apache2/htdocs/cgi-bin">
AllowOverride None
Options All
Order allow,deny
Allow from all
</Directory>
と記述して"C:/Apache2/htdocs/cgi-bin"配下にあるファイルに
CGIが動作するように許可しました。
しかし、これだと逆に"C:/Apache2/htdocs/cgi-bin"配下にある
HTMLファイル(.htm等)が読み込めなくなってしまいます。
cgi-bin配下にあるhtmlファイルも表示できるように許可を
出したいのですが、どのように設定すればよろしいのでしょうか?

Aベストアンサー

一般的に、cgi-bin配下に、HTMLファイルをおくような事はしないと思います。

出来合いのcgiスクリプトで、スクリプトとHTMLファイルを一緒に置かねばならないというのであれば、cgi-bin以外のフォルダを別途作成し、AddHandlerで指定した方が良いかと。

参考URL:http://tohoho.wakusei.ne.jp/wwwxx048.htm

QLinuxサーバーのcgi-binの中のgifやindex.htmが表示されない

RedHat Linux9でWebサーバーをつくり、Perlを使ってCGIプログラムもアップしています。しかし、CGIプログラムは動いているのですが、cgi-binの中に入っているフォルダのgifファイルやindex.htmのファイルが表示されません。何が原因でしょうか。。
設定は特にいじってないです。

Aベストアンサー

フォルダcgi-binが、ディレクティブScriptAliasで指定されているなら、そこにあるファイルは全てCGIプログラムとみなされますので、実行権限の無いファイルは許されません。そして、たんなるHTMLファイルやimgファイルに実行権限を付けても、実行したらInternal Server Errorになるだけです。

――っていう話でがない?

Q/パーティションと/homeパーティションを分けてインストールしたときの不具合

 Redhat Linux7.2をWindowsと30Gのハードデスクに共存させています。ハードデスクの先頭から6GをWindowsのパーティションとして使っており、次に10G使ってRedhat Linuxを入れたいと思ってます。そして、その後にWindowsのDドライブを作ってます。
 それで、/パーティションを先頭から8G以内にいれないとだめなのでWindowsのCドライブの後2Gを使って/パーティションを入れた後、残り8Gを拡張領域として/homeとswap領域に割り当てました。こうすればインストール時には何の問題も無くインストールできました。そして、インストール後も問題なく動いていました。
 でも、1日経ってWindowsを起動した後いざLinuxを起動するとユーザー名rootでは入れるものの個人名では入れなくなります。mountポイントが問題なのかと色々変更を加えたりしたのですが、上手く設定できません。
 インストール後は普通にどのユーザーでも入れるのに後になってからrootしか入れなくなるのはどうゆう理由が考えるのでしょうか?自分で思い当たるふしはあたったのですが、どうにも上手くいきません。
 どなたかお教え願えないでしょうか?

 Redhat Linux7.2をWindowsと30Gのハードデスクに共存させています。ハードデスクの先頭から6GをWindowsのパーティションとして使っており、次に10G使ってRedhat Linuxを入れたいと思ってます。そして、その後にWindowsのDドライブを作ってます。
 それで、/パーティションを先頭から8G以内にいれないとだめなのでWindowsのCドライブの後2Gを使って/パーティションを入れた後、残り8Gを拡張領域として/homeとswap領域に割り当てました。こうすればインストール時には何の問題も無くインストールできました。そ...続きを読む

Aベストアンサー

個人名ユーザのホームフォルダのパーミッションは正しく設定されていますか?

確認方法:
$ ls -ld ~[ユーザー名]

修正方法:
# chmod u+rwx ~[ユーザー名]


何が原因にしろ,今の状況では情報が少なく,はっきりとした回答は難しいですね。

rootで/home以下の領域を読み書きしてみる。

root から
# su [ユーザー名]
で入り作業してみる。

$ ls -ld /home
$ ls -l /home
でディレクトリパーミッションの確認。

$ mount
による,mount状態の確認。

# chkdsk [homeの領域/ボリューム/パーティション/スライス]
によるエラーチェック。

等,いろいろ試してみましょう。
これらを既に行っていたのならば,その出力の情報も合わせて示すようにしてください。


このカテゴリの人気Q&Aランキング

おすすめ情報