[PHP-users 13365] Re: PHPファイルがダウンロードされてしまいます。
Moriyoshi Koizumi
php-users@php.gr.jp
Tue, 18 Feb 2003 03:23:43 +0900
小泉です。
いまメールをブラウズしていたら気づいたので一言。
On Mon, 17 Feb 2003 19:56:56 +0900
月島 <moon@s20.xrea.com> wrote:
> --enable-module=so にしてApacheをインストールして、PHPをDSOとして
> インストールしてみてはいかがですか。
> ちなみに私のところでは、
> ./configure --prefix=/usr/local/apache2/ --enable-modules=all --with-mpm=worker
> にしております。
mpm=worker または mpm=perchild で DSO版の php を運用するのは
とても危険です。
これらをどうしても活用したいというならば
必ず php の configure のオプションで
--enable-experimental-zts (php5 の場合は --enable-maintainer-zts)
を指定してください。
というのは、マニュアルにもありますが、
すべてのモジュールが完全なスレッドセーフではないからで、
かつ、ZTS (Zend Thread Safe) モードが十分にテストされていないという
事実もあります。
いずれにせよ、従来型の prefork を利用することを強くおすすめします。
保証はできませんが、prefork なら、まあ、大丈夫でしょう。
パフォーマンスについてですが、ZTS というのはいわゆる
スレッドローカルコンテキストレイヤーで、性質上、
極端にスクリプトの実行速度を落とすことが確認されています。
なので、worker モデルにするメリットは
動的コンテンツの少ないサイトでの運用以外では、
事実上あまりないと考えて下さい。
なお、これと似たようなことが win32 版の Apache DSO モジュールにも
言えます。というか、この文脈では、win32 であれば、Apache1 も Apache2 も
ISAPIモジュールも同様に望ましくありません。
実運用では Apache1 系列を使ってくれ、というのが本家の開発者の
コンセンサスのようです。