[Momonga-devel.ja:01194] Re: PHPバイナリの処方
- From: Yasuo Ohgaki <yohgaki@xxxxxxxxxx>
- Date: Wed, 08 Jan 2003 11:05:03 +0900
大垣です。
kourin wrote:
> こ〜りんです。
> phpについては無知ですが、ちょっと確認させてください。
>
> On Tue, 07 Jan 2003 10:26:09 +0900
> Yasuo Ohgaki <yohgaki@xxxxxxxxxx> wrote:
>
>
>>大垣です。
>>
>>まずは前置きから。
>>PHP4.3.0からphpという名前のバイナリが二つできます。
>>私はこの仕様には大反対なのですが、なってしまった物は仕方ありませ
>>ん... 一つはCGI用のバイナリ、もう一つはコマンドライン用のバイナ
>>リ(CLI)です。CLIはPHP4.3.0までは、EXPERIMENTALでしたが、
>>PHP4.3.0からは一応STABLEになっています。
>
SNIP
>>私としては、上記のような問題を考えて、CLIはphp, CGIはphp-cgi
>>をして/usr/binにインストールするようにしたい、と考えています。
>>
>>ご意見がある方は、コメント頂ければ幸いです。
>
>
> とりあえず、名前を別々のものにしよう、というのは賛成です。
> (gimp-1.3 やw3m-img の例もありますし。)
>
> CGI が既存のもの、CLI が新規なものならば、普通は旧版との互換性から
> php とphp-cli にすることが妥当かと思いますが、そうではなく、
> php-cgi とphp にしよう、というのは大垣さんやDaultさんの発言からすると、
> 今後はCLI のほうが主に使われるだろうから、という理由でしょうか?
本来はそうあるべきと思います。が、phpは普通スクリプト用、
php-cgiはCGI用になってほしい、という希望もあります。
CGI版をPerlやRubyの様に通常のスクリプト言語として使うと
なると、致命的な欠陥があります。
普通はWeb環境でスクリプトを安全に実行する為に、CGI用の設
定ファイルは通常のスクリプトのように利用するには不適当な設
定がされている場合が多いです。
たとえば、ファイルを開けるトップレベルのディレクトリが設定
されていたり、ファイルを開く為にはUID/GIDが同じでなければ
ならない、出力をバッファリングする、関数を使えなくする(exec,
system等)の設定がされている場合が普通です。
#!/usr/bin/php
がCGIバイナリを参照している場合、上記のようなWeb環境用の設
定は非常に不便です。(というより使えない...
更に、CGI版にはCLI版にある-n(php.iniを読み込まない)オプ
ションもありません。
また、普通の人でPHPを知らない方はphpとphp-cliがあると、
phpの方で動作する非Web用スクリプトを書いてしまう事が多くな
ると思います。
# 私ならPHPを知らなくて、どうしてもPHPを使った非Web用
# スクリプトを書かなければならない場合、phpと名前のつい
# ているバイナリを使います。多分。
また、CGIバイナリをWeb用に設定するのはシステム管理者なので、
CGIバイナリの名称が変ったくらいで普通は困らない(はず)と考え
ています。
このような理由からphpはCLI、php-cgiはCGIにした方が長期的に
はデメリットよりメリットの方が大きいと考えています。
問題は他のパッケージャーがどうするかです...
php-cli派が多いようであれば、/usr/bin/phpは/usr/bin/php-cli
へのリンクにします。
/usr/bin/phpがCGIなのか、CLIなのかシステムによって違う、
という事は避けたかったのですが、多分無理ですね...
php-cliするにしろ、php-cgiにするにしろ、PHPプロジェクトか
らはっきりユーザーに解るようにリリースすべきだったと思いますが、
「理解に苦しむ理由」が理由になるのがphp-devなので...
個人的には同じ名前のバイナリ名でしかも、使用上に重大な問題がある
# CGIとCLIは内部的には、ほとんど同じだったのに別々にしたの
# が問題の始まり... php -x = CLIモード等だったら良かった
# と思います。
# (これも、一応昔に議論になってました。あまり興味がなかっ
# たので、内容を覚えていません)
--
Yasuo Ohgaki