LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

「真っ白になってしまった」と言う前に anchor.png

現実に、「XOOPSが真っ白」なんて状態はまずありません。

"エラーになっているが、そのメッセージが画面に表示されていない"

ただそれだけの状態である、という正しい認識を持つことが最重要です。

そして、「真っ白」の時に真っ先に行うことは、どんなエラーが出たのかを確認することです。下にはいくつも原因や解決法が書かれてますが、これらを闇雲に行って解決することはまずありません。(むしろ悪化するだけ)

どこでエラーがでているかの把握を最優先してください。

  • PHPデバッグON (管理画面→一般設定)
  • mainfile.php に1行追加する (XCL2.1)
define('OH_MY_GOD_HELP_ME', true);
  • 上の効果を持つpreload http://ryus.co.jp/modules/wordpress/index.php?p=217
  • エラーログ・アクセスログのチェック(サーバによっては、エラーを画面ではなくログファイルに保存する設定のところもある)
  • エラーハンドラを強制的に潰す

どういうエラーが出ているのかさえ判れば、あとは簡単です。

Page Top

どうしてもエラーが表示されない場合 anchor.png

本来、Webアプリケーションのエラーは画面表示するものではありません。開発効率を上げたいときなど例外的に採用することはあっても、原則的には、ログに記録すべきものです。(実際には、開発時であっても、別のターミナルを立ち上げてログファイルを tail -f で監視するのがベストです)

参考URL http://xoops.peak.ne.jp/modules/news/index.php?page=article&storyid=464

XCL2.1であれば、このプリロードが利用出来ます。 http://www.peak.ne.jp/support/xoops/Preload_ErrorHandlerOriginal.zip

X2であれば、エラーハンドラをHackして強制的に潰すのが一番です。 エラーをログに記録するという基本が出来るのであれば、このエラーハンドラは存在そのものが蛇足ですから。

include/common.php 37行目付近

   // ############## Activate error handler ##############
//    include_once XOOPS_ROOT_PATH . '/class/errorhandler.php';
   //$xoopsErrorHandler =& XoopsErrorHandler::getInstance();
//     Turn on error handler by default (until config value obtained from DB)
//    $xoopsErrorHandler->activate(true);

include/common.php 98行目付近

   // #################### Error reporting settings ##################
//    error_reporting(0);

   if ($xoopsConfig['debug_mode'] == 1) {
//        error_reporting(E_ALL);
   } else {
       // Turn off error handler
//        $xoopsErrorHandler->activate(false);
   }

これ以降、php.ini や .htaccess によって、統一的なエラーハンドリングが可能となります。

Page Top

「真っ白になってしまった」にならないためのToDo anchor.png

  • XOOPS本体を常に最新版に
  • altsysおよびprotectorの最新版のインストール
  • mainfile.php での記述ミスの有無。エラーが出ているようであれば必ず対処する
  • 実サーバとは別で手元のPCなどで再現できる環境(XAMPPなど)の構築
  • ディスク容量制限の有無
  • XOOPS管理者パスワードの定期的な変更や、ftp権限の管理など
  • ftpデータ格納時にデータが全て適切にアップロードできているか?
  • DBの定期的なバックアップ
  • pico で smarty フィルタをオンにしている状態であり得ない smarty 関数を書いてしまうと、真っ白というか、にっちもさっちもいかない状態になることがありますので、気をつけて(こうなったら phpMyAdmin などで、直に内容を修正した方がよいみたい)。今のバージョンではそういうことにはなりません。単にコンテンツ管理から編集して直してください。
  • 正常なサイトでも、たとえばレンタルサーバなどを使っているときには、同居人の利用状況など、あなたの努力の範疇外の原因もあり得ます。「ときどき白くなる」のは、まあそういうこともあるもんだくらいに考えましょう ;-)
  • 何かあったときに助けてくれそうな人と仲良しになっておく
Page Top

「真っ白になってしまった」場合の確認リスト anchor.png

  • 真っ白になる前から何か作業はしていないか?
    • 新たなモジュールのインストールやテーマファイルの導入・改変(theme.html)など
  • user.php でのログインは可能か?
  • Protector側で拒否リスト(ブラックリスト)などに登録されてしまっていないか?
    • Protector v2.x ならレスキューパスワードでの復旧
    • Protector v3.x なら XOOPS_TRUST_PATH/modules/protector/configs/ 内のファイルをチェック
  • mainfile.php が改ざんされていないか?
    • オリジナルデータとの比較。タイムスタンプだけの比較だけではなく。
  • cache/, templates_c/, uploads/ フォルダの書き込み権限は現状も適切か?
    • cache/, templates_c/ 内のファイルを一旦削除してみる。サーバ移転時は特に注意。
  • XOOPSコアファイルでの欠落が無いか?
    • class/, include/, kernel/ およびトップ階層のphpファイルなど変更されていないか?
  • themeファイルは正しいか?
    • テーマを変えてみても同じか?試しにdefaultテーマの中身に入れ替えてみる、など
  • DBのテーブルが壊れていないか?
    • phpMyAdminなどで確認。どこかのテーブルが使用中などになってしまっていないか?
  • ftpなど不必要なIPからのログインは無かったか?
  • ブラウザの文字エンコーディングは合っているか?
    • 各ブラウザのエンコーディングを確認。
  • altsysで自動テンプレード更新機能を利用している場合に、該当するモジュールをアンインストールすると真っ白になる。モジュールアンインストールの際はmainfile.phpの$tplsadmin_autoupdate_mydirnamesも注意

トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 16346, today: 2, yesterday: 6
初版日時: 2007-12-15 (土) 23:39:28
最終更新: 2014-01-13 (月) 22:06:02 (JST) (1226d) by chika3
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities