[PHP-users 34664] Re: php.ini がopenされているのに読み込まれない[原因判明]
Hideo NAKAMITSU
nomo @ bluecoara.net
2009年 7月 24日 (金) 11:23:35 JST
中満と申します。
On Fri, 24 Jul 2009 09:00:33 +0900
大瀧保広 <y.ohtaki @ mx.ibaraki.ac.jp> wrote:
> Solaris の fopen の仕様に引っかかっていました。
> 32bitアプリでは255より大きいファイルディスクリプタでは
> ファイルにアクセスできないようです。
Solarisのファイルディスクリプタの上限は変更可能です。
> (以下、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など大きめの値に
するだけでエラーは解消するのでは無いでしょうか?
# Solaris + バーチャルホストという組み合わせだと、誰もが通る道ですよね、これ。
PHP-users メーリングリストの案内