XPressME Integration Kit

Codex

画面が真っ白になった場合

XPressMEを導入したら、画面が真っ白になってしまったという状況に陥った時に、

まず確認して欲しいこと

XUGJのQuickReference/真っ白になってしまった」 を参考になんとかエラー内容を表示させてみましょう。


もしかしたらPHPのスクリプトメモリーサイズオーバーかも

XPressME自体のバグという場合もありますが (殆ど、そうだったりして、でもちょっとは他の原因かなと期待したりするわけです)
PHPのスクリプトメモリーサイズをオーバーしてしまった場合にも発生します。

しかも、XPressMEは結構メモリーを消費します
(WordPress単体でのデフォルトメモリーサイズは32Mになってます)

PHPのスクリプトメモリーサイズオーバーで画面が真っ白になるという現象は、XPressMEに限らず、他のモジュールをインストールした場合に発生したり、あるページだけで発生したりすることがあります。

これはモジュールが多くなるに従い、スクリプトが利用するメモリーが多くなるためです。

特に、XOOPS検索や、XOOPS検索を副次的に利用しているユーザ情報などは、検索可能な全モジュールを対象にしているため、メモリーサイズオーバーになる可能性が高いようです。

PHPのスクリプトメモリーサイズオーバーが発生した場合の症状

PHPの display_errors がOFFに設定されている場合

画面は真っ白になります。

PHPの display_errors がONに設定されている場合

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 24576 bytes) in *****

が表示されますが、メモリーオーバーになった時点でエラーとなりますので、必ずしもエラー発生箇所****の部分が原因であるということはないようです。

memory_limit、display_errors設定値の変更方法

レンタルサーバの場合、無闇にメモリーリミットを増加するとクレームがつくかも・・・

xoopsのmainfile.phpで設定する場合

この場合、phpのin_set()を利用し、mainfile.phpの最初のほうに

ini_set(‘memory_limit’, ’32M’);  ’32M’の部分がメモリーサイズ
ini_set(‘display_errors’, ’1′);  1:ON   0:OFF

を追記することで、memory_limitやdisplay_errorsの設定を変更できます。

サーバのphp.iniを編集する場合

サーバーのphp.iniファイル内の

memory_limit、やdisplay_errorsを編集保存後、httpdを再起動

.htaccessを編集する場合

XOOPSのルートパスに .htaccessファイルをおき、ファイル内容に

php_display_errors On または php_display_errors Off
php_value memory_limit 32M (32Mのところはサイズ)

を追記します。

参考

親父のローカル開発環境ではMemory Limit 12MでXPressMEのトップページはまっ白になりました。

ではいったいどれくらい使っているのかということでXPressMEページの表示部分にget_memory_usage()を仕掛けてみたら13Mbyteちょい使ってました

CentOS4デフォルトのmemory_limitは8M でこれは危ない CentOS5で16M , テストサイトに使っているxreaのs273サーバで90M s273サーバーで90Mでした。

 

それでも直らない場合XPressMEのバグかも・・・orz