2008年2月26日火曜日

Mac OS X , php5, apache2, mod_fcgid, PostgreSQL

ちょいとphpをほげることがあったので
Mac OS X 上で試せるように環境作成しておいた。メモ。

・php5
OS付属のはつかわず MacPorts で
variants は
+fastcgi +ipc +mysql5 +pcntl +pear +postgresql +sockets +sqlite
(てきとう。apacheからはFastCGIで使うので +apache2 は不要)

依存関係から、わさわさ入る

・apache2
これもOS付属のは(略)
ソースでいれた。
configureはてきとうに。SSLいらないけど。
$HOME/apache2 にしてみた (きまぐれ)
MPMはワーカー

--prefix=$HOME/apache2
--enable-layout=Apache ¥
--enable-so ¥
--enable-nonportable-atomics ¥
--enable-mods-shared=all ¥
--with-mpm=worker ¥
--with-ssl

インストール後、
モジュールの読み込みまわりはDebianチックに変更
httpd.conf が長いのは萎え萎えです

・mod_fcgid
これもソースで。
Makefile の top_dir を書き換え、make ; make install


でまぁ入れたのはいいものの、Postgres を起動したあと mod_fcgid を有効にした apacheが起動しない。
fork してくれず。エラーは以下。

[emerg] (12)Cannot allocate memory: mod_fcgid: Can't create share memory for size %zu byte

あぁ、、shmなんちゃらをいじるのね、、ということで

コマンドラインで
sudo sysctl -w kern.sysv.shmall=32768
sudo sysctl -w kern.sysv.shmmax=134217728

次回起動時のため
/etc/sysctl.conf に
kern.sysv.shmall=32768
kern.sysv.shmmax=134217728

そんなかんじで。
値は カーネルリソースの管理を参考。
OS X全バージョンで、共有メモリパラメータの変更を反映させるためにはリブートが必要になります。
とあったけど、Leopard だと動的に反映してるように見えた。値は変わるけど、実際は変わってなかったりするの?

それにしてもRではじまる某言語でごそごそする機会は中々ないなー。サミシス。。

0 件のコメント:

コメントを投稿