独自ドメインを取得して、自宅サーバーを起動、MovableTypeをインストール、設定、そして従来のサーバー上のMTのデータを移行したときの備忘録です。
Movable Typeのインストール、設定、サーバー移行メモ
予めインストール
MTをダウンロードし、適切なところにファイルを展開する。
mt.cfg
CGIPath http://url/path/to/mt/
ObjectDriver DBI::postgres
Database mtdb
DBUser mtuser
DBHost localhost
StaticWebPath /mt-static/
DB setup
最初はpostgresでセットアップ。DBは 'mtdb', userは'mtuser'という名称の場合。
$ su postgres
[postgres@newserver usr]$ createuser -P mtuser
Enter password for new user:
Enter it again:
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
CREATE USER
[postgres@newserver usr]$ createdb mtdb -O mtuser
CREATE DATABASE
[postgres@newserver usr]$
mt-load.cgiの実行
Melodyでログイン
ユーザー'newuser'(例)を作成、権限を付与
Melodyを削除(セキュリティのため)
MySQLのインストール
もともとはexport/importを使っての移行を考えたのだが、
- permalinkがずれる(古い方式、数字の場合)
- permalinkが変更される
新しい方式、ハッシュ値を使っている場合であっても後でタイトルを変更した場合にハッシュ値は再生成されない。つまりタイトルを変更したエントリーはimportの際に別のpermalinkとなってしまう。
- UTF-8以外のtrackbackがあった場合に正常にimportできない
という問題があったので、結果的には以前同様MySQLをセットアップし、ダンプを読み込むことにした。
これに伴い、mt.cfgの
ObjectDriver DBI::postgres
を
ObjectDriver DBI::mysql
へ変更。
mysqlのインストール
[user@newserver tmp]$ up2date mysql
You are attempting to run "up2date" which requires administrative
privileges, but more information is needed in order to do so.
Password for root:
http://fedora.redhat.com/download/up2date-mirrors/fedora-core-3
using mirror: http://mirror.hiwaay.net/redhat/fedora/linux/core/3/i386/os/
http://fedora.redhat.com/download/up2date-mirrors/updates-released-fc3
using mirror: http://fedora.cat.pdx.edu/linux/core/updates/3/i386/
Fetching Obsoletes list for channel: fedora-core-3...
Fetching Obsoletes list for channel: updates-released-fc3...
Fetching rpm headers...
########################################
Name Version Rel
----------------------------------------------------------
mysql 3.23.58 16.FC3.1 i386
Testing package set / solving RPM inter-dependencies...
########################################
mysql-3.23.58-16.FC3.1.i386 ########################## Done.
perl-DBD-MySQL-2.9003-5.i38 ########################## Done.
perl-DBI-1.40-5.i386.rpm: ########################## Done.
Preparing ########################################### [100%]
Installing...
1:perl-DBI ########################################### [100%]
2:perl-DBD-MySQL ########################################### [100%]
3:mysql ########################################### [100%]
The following packages were added to your selection to satisfy dependencies:
Name Version Release
--------------------------------------------------------------
perl-DBD-MySQL 2.9003 5
perl-DBI 1.40 5
[root@newserver init.d]# up2date mysql-server
http://fedora.redhat.com/download/up2date-mirrors/fedora-core-3
using mirror: http://ftp.kddilabs.jp/Linux/packages/fedora/core/3/i386/os
http://fedora.redhat.com/download/up2date-mirrors/updates-released-fc3
using mirror: http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/3/i386/
Fetching Obsoletes list for channel: fedora-core-3...
Fetching Obsoletes list for channel: updates-released-fc3...
Fetching rpm headers...
########################################
Name Version Rel
----------------------------------------------------------
mysql-server 3.23.58 16.FC3.1 i386
Testing package set / solving RPM inter-dependencies...
########################################
mysql-server-3.23.58-16.FC3 ########################## Done.
Preparing ########################################### [100%]
Installing...
1:mysql-server ########################################### [100%]
[root@newserver init.d]#
元のサーバーからデータバックアップ
こちらは元のサーバーでの操作。DBが'blogdb', userが'mtuser'の場合。
$ mysqldump -u mtuser blogdb -p > mt.dump
Enter password:
mysqldの起動
新しいサーバーでmysqldを起動する。
# cd /etc/init.d
# ./mysqld start
サーバー起動時にもONになるように設定。
[root@newserver init.d]# /sbin/chkconfig --level 3 mysqld on
[root@newserver init.d]# /sbin/chkconfig --level 5 mysqld on
[root@newserver init.d]# /sbin/chkconfig --list mysqld
mysqld 0:off 1:off 2:off 3:on 4:off 5:on 6:off
DB, userの作成する。DBは'mtdb', userは'mtuser'の場合。
[root@newserver init.d]# mysqladmin create mtdb
[root@newserver init.d]# mysql -u root mysql
mysql> grant all privileges on mtdb.* to mtuser@localhost identified by 'mtdbpass';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
How to migrate (移行方法)
(current server)
- temporarily service down
- db backup
- tar archives
(new server)
- db import
- extract archives
- rebuild
ready to show
(current server)
- setup redirect or rewrite engine to redirect to the new server
- (show archives only?)
上記のような手順で移行しました。
DB dumpの読み込み
予め元のサーバーでとったDBの dumpを以下の手順で新しいサーバーへインポート
(# mysqladmin -u root drop mtdb すでにmtdbがあった場合のみ)
# mysqladmin -u root create mtdb
# mysql -u root mysql
# mysql mtdb < ~/backup/mt.dump
rewrite ruleの設定
元のサーバーのディレクトリに以下を設定
[user@currentserver blog]$ cat .htaccess
RewriteEngine on
RewriteRule (.*) http://nomano.shiwaza.com/tnoma/blog/$1 [L]
これにより従来のアクセスがすべて新しいサーバーへと飛んでくる。
コメント、TBスパム対策
$ mv mt-comments.cgi mt-comments101.cgi
$ mv mt-tb.cgi mt-tb202.cgi
$ vi mt.cfg
上記に合わせてmt.cfgの
CommentScript mt-comments101.cgi
TrackbackScript mt-tb202.cgi
を設定。気休めですが、たまにこの数字を変えてリビルドすると来にくくはなります。
faviconをセットアップ
ろぐろぐシール
ろぐろぐシールはURLをチェックしているので、再生成して貼付け直した。