2007年5月10日木曜日

XOOPSのインストール のメモ

ひょんな事からXOOPSのインストールを行う事となり、難儀をしたのでメモを残す。

で、結論
DBにMySQL 4.1xを使う場合は、DBをUTF-8で作っちゃダメ!
以下のようなエラーが出ます。

Warning [Xoops]: Smarty error: unable to read resource: "db:system_block_login.html" in file class/smarty/Smarty.class.php line 1095
Warning [Xoops]: Smarty error: unable to read resource: "db:system_block_mainmenu.html" in file class/smarty/Smarty.class.php line 1095

DBにMySQL 4.1xを使う場合は、DBをEUC(ujis_japanese_ci)で、
そんでもって、
ファイル(/class/database/mysqldatabase.php)の236行目付近の
$result =& mysql_query($sql, $this->conn);
の上の行に
mysql_query("SET CHARACTER SET ujis", $this->conn);
を追加する。

これでOKのはず。

MySQL 4.1xの不具合?
UTF-8のDBにSQLで
SELECT * FROM XXX WHERE XXX = XXX ORDER BY XXX
のような文を実行した時、対象レコードがあるのに(この時は1)結果は0となってしまう。
EUCのDBでは、問題なく結果を取得できました。

前は、問題なくインストールできたのですが、
探し方が悪かったのか散々放浪をする羽目になってしまいました。

という事で、もうイヤなのでコレは、コレで解決として下さい。

なお、環境は
CentOS 4.4
Apache 2.0.52
PHP 4.3.9
MySQL 4.1.20
xoops-2.0.16a-JP