画面が真っ白になった場合
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