2007年2月28日水曜日

XOOPSのUTF-8化

XOOPSのUTF-8化に挑戦したが挫折。
bwikiがどうにもこうにも。ファイル名が戻せないのが敗因。
取り組む余裕もないのでcubeに行く。

#! /bin/sh
test -z "$1" && echo "Usage: x2utf " && exit
nkf=/root/nkf205/nkf
user=www.psacln
cd $1
find . * -type f -name '*.php' | while read file; do mv $file $file.euc echo $file $nkf -w $file.euc > $file rm $file.euc sed -i "s/EUC-JP/UTF-8/g" $file
done
find . * -type f -name '*.txt' | while read file; do mv $file $file.euc echo $file $nkf -w $file.euc > $file rm $file.euc done
find . * -type f -name '*.tpl' | while read file; do mv $file $file.euc echo $file $nkf -w $file.euc > $file rm $file.euc done
find . * -type f -name '*.css' | while read file; do mv $file $file.euc echo $file $nkf -w $file.euc > $file rm $file.euc done
find . * -type f -name '*.html' | while read file; do mv $file $file.euc echo $file $nkf -w $file.euc > $file rm $file.euc done
find . * -type f -name '*.dat' | while read file; do
mv $file $file.euc
echo $file
$nkf -w $file.euc > $file
rm $file.euc
done
chown -R $user $1
cd $1
chmod 777 cache templates_c uploads
chmod -R 666 ./cache/* ./templates_c/* ./uploads/*
find . * -type d -name 'bwiki' | while read bwiki; do
cd $bwiki
chmod -R 777 wiki wiki.en attach backup cache counter trackback diff
cd $1
done
exit

以上、スクリプトまでUTF化するやつでした・・・。
pathはフルパスで指定しないとダメ。要nkf。

とおもったあらpukiwiki UTF8化の手法でいけるかもしれない。
http://fullmetal.dip.jp/pukiwiki/index.php?memo%2F%E6%94%B9%E9%80%A0%2FUTF-8%E5%8C%96
内容が違うので注意が必要。
あーんど
上のsh実行した後iconvで決め打ちで変換すると多分ファイルが壊れます・・・。




2007年2月27日火曜日

bayes awlをmysqlに格納する

http://www200.pair.com/mecham/spam/debian-maia-spamassassin-sql.html

何をみて設定したのかさっぱり覚えてないのだが、mysqlに格納されていた。
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:maia:localhost
bayes_sql_username amavis
bayes_sql_password passwd

auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList
user_awl_dsn DBI:mysql:maia:localhost
user_awl_sql_username amavis
user_awl_sql_password passwd


local.cfに書き込む。
んー。wikiにでもまとめようかな。もう訳がわからなくなってきた。
しかしサーバー廃止前日に気づいて・・・よかった。


exim修正

localのメールが行方不明になっていた。
サーバー名はmail.localdomainなのだがplesk8ではlocaldomain扱いなのでメールは届かない。
ドメインエイリアスを使ってメールの設定をするとおかしなことになる。
mail.mail.localdomainなどが追加され気持ちがわるい。
ただ単にhoge@mail.localdomain宛のメールをhoge@localdomainにしてくれる機能ではないらしい。
httpでは単なるaliasなのにここら辺が頭の悪さを感じる。(悪いのは私??)

ということでローカルからのメールを一つのアドレスに転送するようにする。
参考。
http://blog.fuktommy.com/1140792128
http://www.ijs.si/software/amavisd/README.exim_v4_app2.txt

これをみて追加してみたのだが、実は上手くいってるかわからない。
というのもmail.localdomainのmxを引くとpleskの設定の影響でmail.mail.localdomainとでてきてしまうのだ。
明日には消えるだろうから、上手く行くことを祈ろう。

exim.confは安定したと確信できたら公開する予定だ!


スキャンでエラー

dns設定を間違っていたせいかもしれないがエラーが出る。
451 4.5.0 Error in processing, id=28294-09, virus_scan FAILED: DBD::mysql::st execute failed: Duplicate entry 'mail' for key 2 at /usr/sbin/amavisd line 3370.

virus_scanに失敗とあるが、何だろうか・・・。
見当違いかもしれないけれど先日dr.webにamavisの権限を動かしたので
drwebのホームにすべて移してみる。
/var/amavisから移動したのは次のディレクトリ
db maia tmp var
ついでに/var/virusmailも移動。
amavisd.confを修正してスタート。

うーん、違う気がする・・・。
IP登録ミスだけなら明日直るだろう・・・。その時に戻そう・・・。めもめも。

追記
何故か・・・何故かは知らないのだがSuperUserに登録していたユーザーのデータが消えていた。
手動で全部追加したところ直った。
うーん、想像としてはエクスポートしてインポートしたときに初期登録のものがコードの関係で消えた・・・って感じかなぁ??

どちらにしても解決してよかった。


2007年2月26日月曜日

Plesk メールアドレスの一括登録

Pleskwikiの情報からメールアドレスの一括登録を試みた。
1.データの並べ順が違うっぽい。DrWeb無効にしたつもりがみんなONになった。
2.入ってないもののは見ないっぽい。SpamAssassinの件は何もでなかった。
3.何故かqmailのrcptdomainやvirtualdomainが更新せずメールが受け取れない

3が致命的です。
画面上からは有効になっているのに、実際は無効になっている。
一回無効にして有効にすると直るんだけど・・・。
メーリングリストも一括登録できないし、Plesk8になってだいぶ機能強化されてるけど
どうにも弱いところがありますなぁ・・・。

とりあえず残り二日にして本格起動しました。
先の思いやられる旅立ちです・・・。


XOOPS UTF-8化

環境をUTF-8にしたため、xoopsがそのままでは動かない。
とりあえずメモ。
トラブルシューティング
移行するのにtar.bz2で固めてwgetで転送してパーミッションの設定を間違えて画面真っ白・・・。
cahce template_c uploadsは777にする必要がある・・・。

動いたけど文字化け。
これは拾ったファイルがダメだったようで、iconvで変換したら動いた。
ただメニューが英語。pukiwikiはローカルにファイルを保存するので変換が必要。
・・・スクリプトはUTF-8で書き出してくれるのだろうか??
メニューが英語。
どこにあるんだろう、言語ファイル・・・。

言語ファイルは次にもあり。
ただ、やっぱり文字化けする。






2007年2月25日日曜日

MysqlとPHPとUTF-8と・・・

いざ、移行を開始してみたらどうにも文字化けが直らない。
私は文字コード問題が苦手。しかし、そうもいってられないので調べて見た。
・mysqlとphpの文字コードが違えば文字化けする。
・mysqlでもクライアントとサーバーの文字コードが違えば文字化けすることがある。(自動変換機能によるもの。サーバーとクライアントの文字コードをそろえることによって自動変換いよる文字化けを抑制する)
・mysqlでクライアントをbinaryにすれば自動変換が無効になり格納文字コードで処理されるようになる。
・サーバーの文字コードを変更する場合は、変更前にDUMPし、変更後に戻してやる必要がある。
・文字コードの確認は
mysql > SHOW VARIABLES LIKE 'char%';
で確認できる。
# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or ¥g.
Your MySQL connection id is 2238 to server version: 4.1.20

Type 'help;' or '¥h' for help. Type '¥c' to clear the buffer.

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)


うーん、ujis(EUC)だ。
こことここを見ながら設定を変更することにする。
ただ、問題になりそうなこともある。
Pleskは内部にphpを抱えているという記述を見たことがある。
そうなるとここでMysqlの設定を変更するとPleskのPHPと不整合を起こす可能性がある。
とおもったらPlesk用のphp.iniは初期設定そのまま。大丈夫かもしれない。

補足:
また途中でデータ喪失してたみたい・・・。寝ぼけながら作業しちゃダメね。
Pleskのデータはすべて書き出してみたけど決め打ちしてるみたいで変更するとエラーになった。
日本語データは扱わないだろうからそのままで影響ないだろうし、そのままにする。
障害が発生したらその時考えよう・・・。




フォロワー