- - PR -
cgi-binディレクトリ以下でのphpの動作
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-05-07 22:35
OS:Redhat9 WWW:Apache2.0.49 PHP:4.3.5を使用しています。
ドキュメントルートのhtdocs以下のディレクトリではphpは正常に動作しますが scriptaliasで定義しているcgi-bin以下では同じphpが動作しません。 httpd.confのscriptalias設定は以下のようにしております。 どのようにしたらcgi-binでも動作させることができるのでしょうか。 <Directory "/***/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> |
|
投稿日時: 2004-05-08 01:17
<Directory "/***/cgi-bin">
どこからこんな情報を引っ張り出したのか・・・(笑) これはお話になりません。 Options None これがマズいですな。 Options ExecCGI は最低必要かと。 |
|
投稿日時: 2004-05-08 01:22
ScriptAliasに指定したディレクトリにある画像が表示できないのと
同じような理由だと思います。 以下のページが参考になると思いますよ。 http://mm.apache.or.jp/pipermail/newbie/2003-June/003806.html 当方は上記ページを参考にしてapache1.3系、PHP4.0.6でcgi-binにおいたPHPファイルを、正常に表示できました。 [ メッセージ編集済み 編集者: ひとむ 編集日時 2004-05-08 01:29 ] |
|
投稿日時: 2004-05-09 00:15
コブラさん、ひとむさんコメントありがとうございます。
> <Directory "/***/cgi-bin"> > どこからこんな情報を引っ張り出したのか・・・(笑) > これはお話になりません。 > > Options None > > これがマズいですな。 書き方がまずかったのかどうかわかりませんが ScriptAlias /cgi-bin/ "/***/cgi-bin/" と記述してありますのでOptions ExecCGIでなくてもよいとおもったのですが やはり必要なのでしょうか。 ひとむさんへ ScriptAliasで指定したディレクトリ配下は実行ファイルとなるのは理解してましたが phpのファイルを実行ファイルとして扱われるからいけないのでしょうか。 phpのファイルには実行権限(x)を与えなくても動作するのでおかしくなる? ScriptAliasでcgi-binを指定しないで使用する方法がいいということですよね? |
|
投稿日時: 2004-05-09 01:20
ScriptAlias を使用した場合、やす様が言われるように、参照先のディレクトリに Options ExecCGI を指定する必要ありません。
> phpのファイルには実行権限(x)を与えなくても動作するのでおかしくなる? 実行できませんエラーでも発生するのでしょう。 |
|
投稿日時: 2004-05-09 01:57
ScriptAliasでcgi-binを指定した場合、 Apache は、このディレクトリ中の全てのファイルを CGI プログラムであると仮定します。だからエラーになるのでしょう。
エラーになった際の、Apacheのerror_logを見てると何かわかるかもしれません。 当方の環境で検証した結果は以下の通りです。参考までに。(ScriptAliasを設定したまま) 1./cgi-bin/test.php (phpinfoのみ)のパーミッションを644 ブラウザ上は、forbidden。 error_logは 「file permissions deny server execution」 2./cgi-bin/test.php (phpinfoのみ)のパーミッションを755 ブラウザ上は、Internal Server Error 「( ![]() |
|
投稿日時: 2004-05-12 22:21
あんとれさん、ひとむさんコメントありがとうございます。
当サーバ環境では以下のとおりになりました。 1./cgi-bin/test.php (phpinfoのみ)のパーミッションを644 ブラウザ上は、Internal Server Error error_logは 「Premature end of script headers: test.php (13)Permission denied: exec of '/test.php' failed」 2./cgi-bin/test.php (phpinfoのみ)のパーミッションを755 ブラウザ上は、Internal Server Error error_logは 「Premature end of script headers: test.php ( ![]() 時間をみてScriptAliasをつかわないでcgi-binを設定してみます。 |
1