12/19/2006

Movable Typeの移行

自宅のサーバでは、Movable Typeを使用したWeblogを動かしています。
Webのサーバを引っ越すにあたり、Movable Ttypeも移行しなければならなくなりました。
今までは、シフトJISを使っていたのですが、
Google Maps API
使うためには、UTF-8でないと動作しないことがわかりました。
そこで、引越しとあわせて、文字コードをコードも変更することにしました。

まず、移行元のサーバから、もって行く、データをそろえます。
Movable Typeのプログラムと、weblogのデータをtarで、バックアップします。
次に、データベースに格納されているデータをexportします。
%pg_dump weblog > weglog.pg

weblogは、Movable Typeのデータが、
格納されているデータベース名です。
これらのデータを移行先に、転送します。

次に、引越し先のPostgreSQLの環境を整えます。
Movable Ttypeから、データベースへアクセスできるように、
"postgresql.conf"と"pg_hba.conf"を編集します。
"postgresql.conf"では、TCP/IPを使って、データベースに
アクセスできるように設定します。

tcpip_socket = true


"pg_hba.conf"では、サーバ自身からのみアクセスできるように、設定します。

host all all 127.0.0.1 255.255.255.255 trust


データベースに、Movable Typeのデータをimportします。
でも、その前に、シフトJISからUTF-8へ、文字コードを変換します。
コード変換にはnkfを使います。Cent OS 4には、nkfのパッケージがないので、
ftp://rpmfind.net/linux/fedora/core/4/SRPMS/nkf-2.04-5.src.rpmからFedora4用のものを持ってきて、rebuildします。

# rpmbuild --rebuild nkf-2.04-5.src.rpm


移行元から転送してきた、exportファイルをUTF-8に変換します。

nkf -w weblog.pg >weblog_utf.pg

データベースを作成します。

createdb -E UNICODE --owner apache weblog

exportファイルを編集します。

SET client_encoding = 'SQL_ASCII';

SET client_encoding = 'UNICODE';


そして、ファイルのimport。

psql weblog < weglog_utf.pg


最後に、Movable Typeの設定ファイル"mt-config.cgi"を編集します。

PublishCharset UTF-8

これで、完了です。
Movable Typeにログインして、サイトを再構築してください。

12/17/2006

Linuxでビデオをみる

Mplayerをつかうと、ほとんどの形式の動画を見ることができます。
というので、がんばって、Mplayerをインストールしました。
いろいろなサイトで、Mplayerのインストール方法を読んでみると、rpmパッケージをそろえるのが大変なので、自分でtarボールからコンパイルしたほうがらくとの記述を結構見ました。
しかし、メインで使用するサーバは、後の管理がめんどくさくなるので、なるべくrpmのパッケージを使うことにしています。
そこで、rpm.pbone.netでひたすら探しました。
mplayerを見つけ、インストールしようとすると、
ディストリビューションに入っていないパッケージたちが、わんさと出てきました。

aalib-1.4.0-5.2.el4.rf.x86_64.rpm
lame-3.97-14.el4.at.x86_64.rpm
libXvMCW-0.9.3-4.el4.at.x86_64.rpm
libdvdnav-0.1.10-3.el4.rf.x86_64.rpm
libfaac0-1.25-1.el4.at.x86_64.rpm
liblzo1-1.08-3.el4.at.x86_64.rpm
libmad0-0.15.1b-3.el4.at.x86_64.rpm
libmpcdec-1.2.2-2.el4.rf.x86_64.rpm
libx264_50-svn20060912_2245-1.el4.at.x86_64.rpm
lirc-0.6.6-4.el4.rf.x86_64.rpm
mplayer-1.0-0.33.rc1.el4.rf.x86_64.rpm
mplayer-fonts-1.1-3.el4.rf.noarch.rpm
x264-0.0.0-0.3.20061023.el4.rf.x86_64.rpm
xvidcore-1.1.2-1.el4.rf.x86_64.rpm

ひとつずつダウンロードして、ようやっと、全部揃えて、インストール。
gmplayを実行すると、無事に起動。
日本語のファイルも問題無く見ることが出来ました。

12/13/2006

NAS BOX をLinuxぽくつかう 導入編

今回は、先日の話したNAS BOX(DSM-G600)をLinuxっぽく使う方法に触れたいと思います。
shellを使えないと、Linuxぽくありません。で、最初に、リモートから接続できるようにします。
ドキュメントが、そろっているtelnetdを、立ち上げることにしました。
実は、このNAS、OSディスクにインストールするわけではないんです。
最初のセットアップで、ディスクに対して行われることは、
スワップの作成と、データを入れる先をext3でフォーマットするだけでした。
OSはメモリ保存されていました。/etc/init.d/に書いたりなんて、できません。
んで、カスタマイズはでするのかというと、
fun_plugという機能(back doorと書いてあるところも)があります。
これは、fun_plugというファイルファイル名で、シェルスクリプトを書いていくだけです。
# fun_plugがrc.localだと思えばよいですね。
それを内蔵ディスクのルートにアップロードします。
あっ、当然、fun_plugをアップロードした後はchmod 777 fun_plugはお忘れなく。

#!/bin/sh
echo Hello World > /mnt/HD_a2/hello.txt


これで再起動すると、fun_plugが実行され、内蔵ディスクにhello.txtができます。
この要領で、サービスのプログラムを追記していきます。

個々のサービスについては、またの機会に。

12/12/2006

NAS BOX


この週末に、NAS Boxを買いました。D-link DMS-G600という製品で、日本では売っていません。
特徴は、無線LAN,Giga bit Eatherに対応しておるところ。
もうひとつは、このNASのOSがLinuxで、いろいろと、カスタマイズが出来ること。
#ようは、おもちゃとして、楽しめそうということ。

箱をあけ、マニュアルを見ながら、セットアップ。
セットアップは、最初のマシンを見つけるところ以外は、基本的にはNASのWEB UIを使う。
セットアップの途中、無線LANの設定で、"Access Point"という選択肢があり、私はつなぎ先だろうと思い、"Access Point"にチェックして、先に進む。
出来上がって、LANからの接続はあっさり成功。
LANケーブルを抜いて、無線LAN接続を試みるが、全くNASが見つからない。
ステータスを確認すると、無線LANのLEDがついていない。
もう一度、WEBのUIで設定を確認すると、無線LANと有線LANのIPアドレスが同じ。
「へー」と思いながら、
実は、"Access Point"は、無線LANの"Access Point"になる機能をONにすること。クライアントになるだけだろうと思っていましたが、これはびっくり。
とはいえ、すでに、"Access Point"は、持っているし、54Mbpsでは遅いので、この機能はお蔵入り。
クライアントと設定しなおして、家の"Access Point"に接続を設定。
もう一度、LANケーブルを抜いて、確認。今度は問題なく接続することができました。

Linuxらしく使う話は、また、今度。
私の買ったNAS BOXはこんなスペックです。

DMS-G600


CPU 170 MHz Freescale MPC8241 with MPC603e Motorola PowerPC core
RAM 32 MB ESMT M12L128168A
Flash ROM 4 MB
USB 2 port USB2.0 NEC D720101GJ
IDE controllerAcard ATP-865
LAN 10/100/1000Mb IC Plus IP1000A
WIFI 2.4GHz 54Mbps Ralink RT2560 miniPCI
Serial 9600 8N1
BootloaderU-Boot without netboot
Stock kernel Linux-2.4.21-pre4
Stock C libraryuClibc 0.9.26

12/08/2006

SSH over an HTTP-Proxy Server

ついに発見!!
ずーーーーーーっと探していた会社の中から、家のマシンにアクセスする方法をついに発見しました。
昔の部署では、社外のサーバを持っていたので、sshで外に出られてました。しかし、異動してからは、会社からアクセスできませんでした。おうちでは、いろいろとすることがあるので、なかなか、思うように触ることが出来ません。やはり、会社から触れないと、いろいろと不便がありました。

さらに、こちらに赴任してきてからは、家で仕事するため、テスト環境を自宅に構築しています。
自宅の環境を参照するために、絶対欲しかったんですよね。

SSH over an HTTP-Proxy
で、なぜ、SSH over an HTTP-Proxy なのかと言うと、
会社には、Fire wallにより、外部に出られるサービスが限られています。
一般的に、企業では、Web(HTTP)とMail(SMTP)だけが、外部への口です。
SMTPは、メールをリレーする仕組みなので、shellを動かすのはちょっと向かない。
HTTPは、ずっと、つないでいることができるので、これを使うのが唯一の方法となります。
そこで、HTTPにSSHを乗っける方法を探すとなるわけです。
で、みつけたのが、Corkscrew!
導入は至って簡単。

Linuxでのセットアップは、こんな感じです。

  1. ソースをCorkscrewからダウンロード。
  2. tar ballを展開して、configuer and make install
    デフォルトでは、/usr/local/binにインストールされます。
  3. ~/.ssh/configに、次を加えます。

    ProxyCommand /usr/local/bin/corkscrew proxy.example.com port %h %p
    proxy.example.com:プロクシ・サーバ
    port:ポート番号

    特定のホストだけにCorkscrewを使う場合は、ProxyCommandの前に、次を加えてください。

    Host foo.bar.com
    foo.bar.com
    :接続先のサーバ

  4. 後はつなぐだけ

    ssh foo.bar.com
    user@ssh foo.bar.com 's password:
    Last login: Thu Dec 7 17:35:34 2006 from proxy.example.com
    [uesr@foo.bar.com ~]$


めでたし、めでたし。

追記
06/12/13
 rpm.pbone.netにRPMパッケージを見つけました。
srpmをrebuildすれば、簡単にRPMを作れると思います。