[PHP-users 3102] Re: cgi版PHP4 でInvalid URI
しのはら よしたけ
php-users@php.gr.jp
Wed, 24 Oct 2001 19:14:07 +0900 (JST)
よしたけ@YYNです。
Debian@potatoでPHP-4.0.6のいんちきパッケージをつくって運用してます。
> PHP4のCGI版をApacheに組み込もうと四苦八苦しています。
なぜにCGI版なの?と思うのですが、それはそれなりに理由があるのでしょう(^^;
#セキュリティですかね?setuidで実行されたいのかな?
#でも、そのレベルであれば、素直にDSO版使ったほうが安全のような気が・・・
CGI版をApacheと連携させず、DBにアクセスするためのスクリプトとしてロー
カルで使用する事であれば、おいらも良くやってます。
> 環境は以下の通りです。
> OS: Debian woody
> Apache: 1.3.9-14
> PHP: 4.0.3pl1-0potato1.1
これまた、なぜにwoodyなのにPHPはpotato版なんでしょう?
各種ライブラリ等の依存関係でインストールすらままらならないと思うのです
が(^^;
きちんとしたwoodyじゃないのかな?
> mod_actions.soは、<mod_path>で指定されるディレクトリにあります。
> また、/cgi-bin/ で指定されるディレクトリにはphp4の実プログラムが
> あります。
php4の実プログラムとはphp自体でしょうか?それともスクリプトでしょう
か?
一度 http://download.php.net/manual/ja/security.php を読まれてみ
てはいかがでしょう。
php自体が/cgi-bin/に入っているのでしたらば、セキュリティ上問題ある
気がします。>識者の方フォローして頂けませんか?(^^;
--enable-force-cgi-redirectが指定されていれば問題ないでしょうか?
> この状態でindex.phpというファイルを作り、Webブラウザから参照する
> と、「Invalid URI in request GET /index.php HTTP/1.1」というエラー
> になってしまいます。
ブラウザからのリクエストは?
http://<hogehoge>/index.php
でしょうか?
もし、そうであればLocationの設定で/がCGI実行できるようになっていな
いのかと思われます。
> シェルプロンプト上で php4 index.php は正しく実行されます。
そもそも、上のURLのマニュアルにもかかれていますが、CGI版として使う
のであれば、スクリプトとして#!/usr/bin/phpの一行が先頭に必要だと思
います。
#というか、その運用が一番安全でしょう。
> どこに問題があるのでしょう。
ちょっときついこと言ってしまうと、仕組みをきちんと理解されていない
のにCGI版を無理して使うという所に問題がある気がします(^^;
一般的な使い方ではないという意味でです。CGI版ではsetuidで実行できる
という事以外はApacheモジュール版より動作速度うんぬんでも劣ってると
思います。(ほかにもあるかもしれませんが・・・)
また、一般的ではないのでハウツーページも少ないと思います。
まずは普通にDSO版で行ってみてはいかがでしょうか?
------------------------
YYN partnership company
Yoshitake Shinohara
yoshi@yyn.jp