Xoopsで作ったサイトを2つほど運営(つっても半分閉鎖状態ですが)しているのですが、結局今回のサーバ移行で一番手間取ったのはこのXoopsの移行かなぁ。
まず、Xoops自体ここ半年以上触ってなかったので、「何だっけ?」というところから始まり、phpMyAdminでエクスポートして新サーバでインポートするものの、まず画面真っ白、そしてそれを解決しても文字化けやらで全然ダメ。
そもそも、XoopsはPHP5に正式に対応してない(昨年対応していなかったのは知っていたが、まさかいまだに対応していないとは思わなんだよ)し、MySQLもちゃんと動くバージョンは一体どれ?という状態。
新サーバではPHPは5.1.4、MySQLは5.0.22
なのではっきり言って絶望的?
旧サーバはEUCで、新サーバの文字コードはUTF-8にしてるのもいろいろややこしい原因だが、今回はどうしてもUTF-8にしたかったので無理がありながらもいろいろ強行突破中。。
もうXoopsで作ったサイトは見捨てようかとも思ったが、なんとか動くところまで持っていけた。
まず、XoopsをPHP5で動かすには:
php.iniのregister_long_arraysをonにする
次に文字化けに関しては:
MySQLのクライアント文字セットを明示的にMySQLサーバに通知する必要があります。現時点(2006/10)のXOOPSではこの機能がサポートされておらずXOOPSのソースコードを変更する必要があります。
DocumentRoot/xoops/class/database/mysqldatabase.php
のfunction connectのところに若干追記します。
function connect($selectdb = true)
{
if (XOOPS_DB_PCONNECT == 1) {
$this->conn = @mysql_pconnect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
} else {
$this->conn = @mysql_connect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
}
if (!$this->conn) {
$this->logger->addQuery('', $this->error(), $this->errno());
return false;
}
if($selectdb != false){
if (!mysql_select_db(XOOPS_DB_NAME)) {
$this->logger->addQuery('', $this->error(), $this->errno());
return false;
}
}
// MySql>=4.1 //////////////////////////////////////////////////////////////
mysql_query("SET NAMES ujis", $this->conn);
////////////////////////////////////////////////////////////////////////////
return true;
}
追記するのは、上記の最後の部分(以下参照)
// MySql>=4.1 //////////////////////////////////////////////////////////////
mysql_query("SET NAMES ujis", $this->conn);
////////////////////////////////////////////////////////////////////////////
今まで新旧両方のサーバを並行稼動させてましたが、これでようやく旧サーバは役目終了、ということになるかな。








コメント (2)
聞いていいのかなぁ?
そのXOOPSで作ってあるサイトって何のサイトなの?(笑)
投稿者: たねちゃん
|
2006年10月24日 23:45
いや、たいしたサイトではなく、単に仲間内のゴルフのサイトなんです。
MySQLでスコア管理、グラフ表示までさせるところまで持って行った
がもう1年以上誰にも使われていない( ̄Д ̄;;
一応、過去の遺産といえど、スコア管理用に作ったPHPのソースが
他に使いまわし利くかもしれないのと、突然皆がまた復活を望む
場合に備えてなんとか移行したんだけど、多分意味なし(笑)
投稿者: Kazu
|
2006年10月24日 23:55