↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

おのたく日記 [RDF] YouTubeも始めました→


2011-06-15(Wed) [長年日記]

[Scuttle] バージョンアップ

Scuttleがいつのまにかgithub.com移っていて、バージョン0.7.4から0.9.0に上がっていた。

期間は空いたたけど、tables.sqlは変わっていないので、データベーススキーマがそのままなので簡単そうなので、2007年3月19日以来のバージョンアップを行った。

まずは、データが壊れると怖いので、データのバックアップをする。ついでにmysql 4.1の頃から使っているデータなので中身がutf8されていないのでutf-8化も行った。

バックアップはlatin1で取り出す。

$ mysqldump --user=www-data --default-character-set=latin1 scuttle >scuttle-20110614.0.7.4.sql

これをutf-8にコンバートするために「|nkf -w -Z -x -I」なんてもやってみたけど、utf-8の最後のバイトが尻切れになっていまっているフィールドなどがあり、データはメロメロだったので、いちどemacsで開いて

/*!40101 SET NAMES utf8 */;

にするとともに、emacsで保存するときの警告を元に手動で尻切れのデータの余分なバイトを消去した。

$ mysql --user=www-data --default-character-set=utf8 scuttle <scuttle-20110614.0.7.4.sql

でリストアして、データをutf-8にした。これで今後は文字の尻切れがなくなるはず。

次は、scuttleプログラムのバージョンアップ、以前はsubversionだったけどgitに変わっているので新しく取り出すことにした。

# mv /var/www/scuttle /var/www/scuttle.old

# mkdir /var/www/scuttle

# chown oyo.oyo /var/www/scuttle

$ cd /var/www

$ git clone https://github.com/scronide/scuttle.git

$ cd scuttle

$ chgrp www-data cache

$ chmod g+w cache

$ cp -p config.php.example config.php

$ vi config.php

として、config.phpは

$dbtype = 'mysql4';

$locale = 'ja_JP';

$shortdate = 'Y-m-d';

$longdate = 'Y F j';

$nofollow = FALSE;

$defaultPerPage = 25;

$cleanurls = TRUE;

$usecache = TRUE;

あたりを変えた。

リモートからの登録を拒否するために2009年2月26日の日記のように、

RewriteRule ^register.php /scuttle/ [L,P]

[.htaccessより引用]

を加えた。 ※バージョン0.9.0だと[P]をつけないと変なエラーになるのはなぜ?

これで完成だと思って、Webを開いてみると、ブックマークの内容が文字化けしていた。「Changes for correct utf-8 support (e.g. german umlauts) - ID: 2215940」を参考に、

diff --git a/includes/db/mysql4.php b/includes/db/mysql4.php

index 0639518..2dccb1d 100644

--- a/includes/db/mysql4.php

+++ b/includes/db/mysql4.php

@@ -44,6 +44,8 @@ class sql_db

{

if (@mysql_select_db($this->dbname))

{

+ #for db utf8

+ mysql_query('SET CHARACTER SET utf8', $this->db_

connect_id);

return $this->db_connect_id;

}

}

とDB接続のエンコーディングをutf8にしたら、ajaxGetTitle.phpの方は手を入れなくても、ちゃんと登録できて表示されるようになったので完成とする。

git化してあるので、今後は $ git pull --rebase でバージョンアップできるはず…

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索