All Articles

MacのPHPでToo many files openとか出るときの話

Macに戻しました

とある理由から自宅のマシンをUbuntuからMacに戻しました(デュアルブートなどという甘っちょろい事はしてません)。さようならUbuntu。で、久々にMacでLAMPPの環境を作っていたのですが、ちょっとハマったのでメモです。多分同じ現象になっている人もいるでしょうし、解決済みの方は何もしなくてもいいと思います。

Too Many files openとか出るんですが

普通にフレームワークを設置していざ起動してみようとすると、なんかエラーが出て動作しないんですよね。エラーメッセージは"Too many files open"。OSは入れたてホヤホヤのLion。多分Mavericksでも同じだと思います。

原因は

OSのファイルディスクリプタ数の上限に引っかかっているみたいです。

$ sudo launchctl limit

...
maxfiles    256            unlimited

ということで、256ファイル上限にデフォルトになっていました私の場合。PHPならわりとすぐに超えそうな値。

対策とか

/etc/launchctl.confというファイルを編集(なければ作成)し、以下の行を追加すればいいです。
$ sudo vi /etc/launchctl.conf

limit maxfiles 65536 65536

65536の値は大きすぎるかもなので、適当な数にしておけばOK。で、再起動。もしくはulimitコマンドで設定してもいいのかな。

まとめ

やっぱりMacはこういうのが使いづらい感じがする…。あと日本語のエントリがそんなになかったので書いてみました。 ハード依存なのかな?よくわからん。