« Googleにページがインデックスされた | Kazuの挑戦日記TOP | メール送信フォームのセキュリティホール? »

Xoopsの移行

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);
////////////////////////////////////////////////////////////////////////////

今まで新旧両方のサーバを並行稼動させてましたが、これでようやく旧サーバは役目終了、ということになるかな。

コピペ用リンク

このエントリーのトラックバックURL:


このエントリーへのリンクURLを含むHTML:

同じカテゴリの記事

トラックバック

コメント (2)

たねちゃん's website

聞いていいのかなぁ?

そのXOOPSで作ってあるサイトって何のサイトなの?(笑)


Kazu's website

いや、たいしたサイトではなく、単に仲間内のゴルフのサイトなんです。
MySQLでスコア管理、グラフ表示までさせるところまで持って行った
がもう1年以上誰にも使われていない( ̄Д ̄;;
一応、過去の遺産といえど、スコア管理用に作ったPHPのソースが
他に使いまわし利くかもしれないのと、突然皆がまた復活を望む
場合に備えてなんとか移行したんだけど、多分意味なし(笑)


コメントを投稿



RSS

Add to goo
Add to google

はてなRSS
feedpath
Subscribe in Bloglines
Subscribe with livedoor Reader




Tag cloud

お勧め!