XOOPSに関する、運用上のノウハウ、アクセスする上で注意すべきことなどをまとめます。
XOOPS Cubeに関する、事項。
どういうわけか、同じモジュールが、二重にモジュール登録されていることがある。こうなってしまうと、もう、管理画面からアンインストールすることも出来なければ、そのモジュールにアクセスすることも出来なくなってしまう。1)
こうなってしまったら、DBから二重登録されているものを手で削除するしか方法はなさそうである。
まず、「互換モジュール」から「モジュールの管理」を選んで、重複登録されているモジュールのMID番号を控える。
次に、MySQLにアクセスし、問題のモジュールの登録を削除する。
$ mysql -p xoops Password: mysql> delete from xoops_modules where mid=123; Query OK, 1 row affected (0.00 sec) mysql>
データベース名は xoopsではなく自分が使っているものを指定すること。123 は上で見つけたMID番号。複数を一遍に削除したいなら、
mysql> delete from xoops_modules where mid in (123,456,78);
のようにすればいい。いずれにしても、MIDを間違えると、登録済みのモジュールも消されてしまうので注意すること。なお、ここで消しても、モジュールそのものがファイルシステムから消えるわけではないので、モジュールのインストールをし直せば、また使えるようになる。
認証は通ったのに、ログイン後の画面がゲストのものと変わらない–そんな症状に遭遇したら、データベースが壊れていることを疑うべきである。
データベースファイルの格納されているディレクトリに行き、myisamchkコマンドでテーブルの破損をチェックする。
# cd ~mysql/xoops # myisamchk -s *.MYI ... myisamchk: MyISAM file xoops_session.MYI myisamchk: warning: 1 client is using or hasn't closed the table properly MyISAM-table 'xoops_session.MYI' is usable but should be fixed ... #
メッセージはこの通りか違うかは、判らないが、何らかの破損を警告されたテーブルがあったら、myisamchkコマンドないしは、mysqlで修正を行なう。
# mysqlisam -r xoops_session.MYI
あるいは、
# mysql -p xoops Password: mysql> repair table `xoops_session`;
とすればいい。これで、テーブルの修復が行なわれる。ログインに関係して壊れる可能性があるテーブルとしては、xoops_session, xoops_users, そして xoops_onlineなどが考えられる。なお、これらを修復しても回復しない場合もある。
XOOPS/XOOPS Cubeのバージョンアップを行なった際に、データベースの更新がうまくいかなかった場合などにそういうことが起こるようである。
startへ戻る。