php.iniでmemory_limitが効かない
ZABBIXのサーバを1.6.4から1.8へバージョンアップしたのですが、その際に必要条件のチェックが動いて、phpのmemory_limitが引っかかった。
どうも128MB必要らしいのですが、64MBだよって表示されている。それとpost_max_sizeも16M必要らしい。
なのでphp.iniを編集。
memory_limit = 128M post_max_size = 16777216
これでApacheを再起動。post_max_sizeのチェックは通ったが、memory_limitの値が64MBのまま。編集しているphp.iniが違うわけでもない。変だなぁ。
zabbixのソースもチェックしたがよくわからない。あんまり時間を無駄にするのもしゃくなので、zabbixのソース中に少々手を入れることにした。
手を入れたのはinclude/setup.inc.phpで、memory_limitの値を取り込んでチェックしているところ。189行めあたり。
ini_set('memory_limit','128M') ; ← ここ $memory_limit = str2mem(ini_get('memory_limit')); $table->addRow($this->get_test_result( $final_result, 'PHP Memory limit:', function_exists('memory_get_usage') ? mem2str($memory_limit) : 'unlimited', $memory_limit >= 128*1024*1024 || !function_exists('memory_get_usage'), '128M is a minimal PHP memory limitation'));
まぁアドホックではある。今のところ支障はでてない。