b2evolutionのspam排除機能でエラー

著者: momokuri Eメール

b2evolutionでspam排除機能のblacklist管理のところで、エラーになる。


Fatal error: Allowed memory size of nn bytes exhausted (tried to allocate n bytes) in ほにゃらら

こういうときは、phpの設定を変更する、以下のようなのを入れておくと
いいかもしれない。


/* Uncomment this line to attempt to use a higher memory limit */
ini_set("memory_limit", "12M");

でも、根本的にプログラムに問題がある、と考えた方がいい。メモリをそんなに使うのは、どうしてか。今回の場合は、すごく大きなblacklistのデータをSQLでカウントしているので、そこが怪しい。

この記事へのトラックバック アドレス

トラックバック URL (右をクリックし、ショートカット/リンクをコピーして下さい)

1 コメント

コメント from: H.Miura [メンバー] Eメール
H.Miuraちょうど、
if( ! $disp_blacklist && (count($res_stats) > 100) )

というコードがあり、$res_statsをもってくるときがDBMSにはいっているすべてのantispamレコードを引っ張ってくる。
それが、 list_antiSpam()という関数だ。
現状、このサイトでもスパムドメインやキーワードは数千のレコードになっており、これがメモリを圧迫してしまっている。
ブラックリストの全表示をすることは、すでに現実的ではないので、上記のように百以上のときは表示しないようにしてあるが、今のコードではDBからはとってきてしまう。
この$res_statsに入れるという処理方法は望ましくない。
2006/07/13 @ 19:38

コメントを残す


頂いたEメールアドレスはこのサイト上には表示されません

頂いたURLは表示されます。
(改行が自動で <br /> になります)
(名前、Eメールとウエブサイト)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのEメール・アドレスは表示されません))