[PHP-users 13227] Re: --enable-force-cgi-redirect を使ったCGIが動かない
Masaki NOHTOMI
php-users@php.gr.jp
Wed, 12 Feb 2003 17:34:14 +0900
納富です。
原因の一部が自己解決しました。
> Action php-script /cgi-bin/php
> AddHandler php-script .php
>
> を追加。
> Action php-script /cgi-bin/php
> とはCGI版PHPの本体のことみたいなので
> DocumentRoot(私の場合/home/www)以下のcgi-binディレクトリにコピー
> # cp sapi/cgi/php /home/www/cgi-bin/php
>
> whomai.php の #!/usr/bin/phpを削除し
> パーミッションを 600にして
> http://homer/~narf/cgi-bin/whoami.php に再アクセスすると
(snip..)
> というメッセージがでてきて、スクリプトが動作しませんでした。
> cgi-bin ディレクトリにあるとだめなのかと思い
> ExecCGIを指定していない
> 上位ディレクトリにコピーしてやってみても同じでした。
httpd.confのメインのサーバ設定部分に
AddHandler cgi-script .cgi
が指定されていたので
httpd.confのActionディレクティブを
Action php-script /cgi-bin/php.cgi
AddHandler php-script .php
と指定し直し
cgi-bin以下においたCGI版PHPパーサには
http://homer/cgi-bin/php.cgi
と拡張子をつけなければいけなかったようです。
とりあえずそれで、
http://homer/~narf/ 以下に whoami.php
<?
system("whoami");
?>
というスクリプトをおき パーミッションを644にして
http://homer/~narf/whoami.php
にアクセスしてみると
www
という答えが返ってきます。
スクリプトのオーナは narf なのですが
考えてみたら
Action php-script /cgi-bin/php.cgi で指定したphp.cgiの
オーナーは www なのでこれが正しいことまでは理解できました。
しかし、SuEXECとは関係ないと思われる別の問題が発生しました。
DucumentRoot直下の
http://homer/whoami.php
という上記とまったく同じ内容のスクリプト(オーナー: www パーミッション: 644)
をおきブラウザからアクセスすると
No input file specified.
とにべもない答えが帰ってきます。
そこで
Alias /narf/ "/home/narf/public_html/"
を付け加え
http://homer/narf/whoami.php
からアクセスしてみるとやはり
No input file specified.
になります。
わかりずらいとは思いますが要約すると
------------------------------
Apacheの設定で
Action php-script /cgi-bin/php.cgi
AddHandler php-script .php
Alias /narf/ "/home/narf/public_html/"
を加え
http://homer/cgi-bin/php.cgi
にCGI版PHPをおき、これ経由で *.phpを起動させようとした場合
まったく同じPHPファイルを
http://homer/~narf/whoami.php
からアクセスするとOKで
http://homer/narf/whoami.php
のように(~)なしでアクセスすると
No input file specified.
というエラーになる
------------------------------
といううことです。
何か追加の設定が必要なのでしょうか?
よろしくお願いします。
--
納富正樹 / Masaki NOHTOMI <narf@alcnet.jp>