2009年7月24日

[PHP-users 34665] Re:php.ini がopenされているのに読み込まれない[原因判明]

こんにちは、大瀧です。

On 2009/07/24, at 11:23, Hideo NAKAMITSU wrote:

> 中満と申します。
>
> On Fri, 24 Jul 2009 09:00:33 +0900
> 大瀧保広 <y.ohtaki@xxxxx> wrote:

>
>> Solaris の fopen の仕様に引っかかっていました。
>> 32bitアプリでは255より大きいファイルディスクリプタでは
>> ファイルにアクセスできないようです。
>
> Solarisのファイルディスクリプタの上限は変更可能です。

「255より大きい値のファイルディスクリプタでアクセスできない」
というのは、上限とは独立に生じる現象のようです。

>
>> (以下、fopen のマニュアルからの該当部分の抜粋)
>>
>> Normally, 32-bit applications return an EMFILE error when
>> attempting to associate a stream with a file accessed by a
>> file descriptor with a value greater than 255. If the last
>> character of mode is F, 32-bit applications will be allowed
>> to associate a stream with a file accessed by a file
>> descriptor with a value greater than 255.
>>
>> open は成功してるのに、fopenがエラーになってたのですね。
>>
>> (最終的にfopenに渡る)モードを"r" から "rF"に直して歩くか、
>> 64bitアプリとしてビルドする(PHP? Apache?)ことになりそうです。
>
> おそらくそれぞれのバーチャルホストでログを出力しているため
> ファイルディスクリプタが足りなくなっているのだと思いますが、
> Apacheをビルドする際、FD_SETSIZEの値を8192など大きめの値に
> するだけでエラーは解消するのでは無いでしょうか?

プロセスあたりのファイルディスクリプタの個数の上限は1024になっており、
実際、バーチャルホストのログファイルはすべて問題なく出力されています。

> # Solaris + バーチャルホストという組み合わせだと、誰もが通る道ですよね、これ。

ですね。
しかも、ホスティング数がそこそこ増えないと発現しないし...
最初の現象からPHPの問題だと思いこんだのが、ハマりのもとでした。


_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2009年7月24日 13:52
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86917
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。