Category Archives: wordpress
【IT】tdiaryからwordpressに移行しました
ブログアプリケーションとしてtdiary(Ver2.2.1 Wiki形式で記載)を使っていたのですが、wordpress(Ver.2.6.5)に移行してみました。理由は、日単位で記事を管理するより、記事単位で管理したかったということにつきます(tDiaryでも、手を加えれば可能なのですが)。 以下か、立ち上げた時の作業メモです。
WordPressの立ち上げ
DBを作る
以下のような感じで、wordpressが使うDBを作成します。
| DB名 | wordpress_db |
| ユーザ名 | wordpress_user |
| パスワード | 123456 |
% mysql -u root -p mysql> create database wordpress_db; mysql> grant select,insert,delete,update,create,drop,file, alter,index on *.* to wordpress_user identified by '123456';
apacheの設定
mod_rewriteとmod_php5をapacheに組み込む為、/etc/httpd/conf/httpd.confに以下を追記。
LoadModule rewrite_module /usr/lib/httpd/modules/mod_rewrite.so LoadModule php5_module /usr/lib/httpd/modules/libphp5.so
バーチャルホストで動かしたいので、以下も記述。
<VirtualHost 999.999.999.999:80>
ServerName blog.kopakas.com
DocumentRoot /var/www/html/wordpress
DirectoryIndex index.php
AddType application/x-httpd-php .php
ErrorLog /var/log/httpd/kopablog_error.log
TransferLog /var/log/httpd/kopablog_access.log
<Directory "/var/www/html/wordpress">
Options ExecCGI FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</Directory>
</VirtualHost>
WordPressでは、URLのパスの形式を任意に設定できますが、上記のような、mod_rewriteの設定が必要のようです。
WordPressのインストール
WordPressの日本語サイトからダウンロード。
所定のディレクトリに展開して、アクセスすれば、設定画面が表示されます(はずです)。
記事の移行
記事の移行は、以下の手順で実施しました。
tDiaryからMovableType形式に
こちらのブログで公開されているtDiary→MovableType変換スクリプトに一部修正を加えました。tDiaryのタグは、Wordpress側でカテゴリとタグの両方に振り分けています。
*** 44,63 ****
__DIARY_FST__
if($category ne ""){
- @cate = split /,/,$category;
print << "__DIARY_CATEGORY__";
! PRIMARY CATEGORY:
__DIARY_CATEGORY__
- foreach $i ( @cate ){
- print "CATEGORY: $i\n";
- }
-
}else{
print "PRIMARY CATEGORY: \n";
}
print << "__DIARY_SND__";
DATE: $date
- TAGS: $category
-----
BODY:
$body
--- 44,59 ----
__DIARY_FST__
if($category ne ""){
print << "__DIARY_CATEGORY__";
! PRIMARY CATEGORY: $category
! CATEGORY: $category
__DIARY_CATEGORY__
}else{
print "PRIMARY CATEGORY: \n";
}
print << "__DIARY_SND__";
+
DATE: $date
-----
BODY:
$body
***************
*** 137,166 ****
if(/^.$/){
# λ
$title_switch=0;
! }elsif(/^!\s/){
! # !\s
! $key++;
! $diary_key = "${date}-${key}";
!
! my($tmp);
! $tmp = $_;
! if ($tmp =~ /\[\S*\](.*)$/){
! $title{$diary_key} = $1;
! while ($tmp =~ /\[(.*?)\]/g){
! $category{$diary_key} .= $1.",";
! }
! $visible{$diary_key} = $visible;
! }else{
! $category{$diary_key} = "";
! $title{$diary_key} = $tmp;
! $visible{$diary_key} = $visible;
! }
! $title_switch=0;
! $p_date_time = sprintf "%s 00:00:%02d", ${p_date}, ${key};
! $date{$diary_key}=$p_date_time;
# Title
$title_switch=1;
! }elsif(/^Format: Wiki$/){
# #5Header
$title_switch=2;
}elsif($title_switch==2){
--- 133,142 ----
if(/^.$/){
# λ
$title_switch=0;
! }elsif(/^$/){
# Title
$title_switch=1;
! }elsif(/^Format: tDiary$/){
# #5Header
$title_switch=2;
}elsif($title_switch==2){
***************
*** 184,190 ****
# MT
$p_date = sprintf "%02d/%02d/%02d", ${mon}, ${day}, ${year};
}elsif(/Title: (.*)/){
! # 5
}elsif(/Last-Modified/){
# 5
}elsif(/^Visible: (.*)/){
--- 160,166 ----
# MT
$p_date = sprintf "%02d/%02d/%02d", ${mon}, ${day}, ${year};
}elsif(/Title: (.*)/){
! # $title{$diary_key}=$1;
}elsif(/Last-Modified/){
# 5
}elsif(/^Visible: (.*)/){
***************
*** 194,200 ****
$visible=0;
}
# 5
! # }elsif($title_switch==1){
}else{
#
# <%=image 0, '', nil, [256,192]%>
--- 170,194 ----
$visible=0;
}
# 5
! }elsif($title_switch==1){
! #
! $key++;
! $diary_key = "${date}-${key}";
!
! my($tmp);
! $tmp = $_;
! if ($tmp =~ /\[([^\]]*)\](.*)/){
! $category{$diary_key} = $1;
! $title{$diary_key} = $2;
! $visible{$diary_key} = $visible;
! }else{
! $category{$diary_key} = "";
! $title{$diary_key} = $tmp;
! $visible{$diary_key} = $visible;
! }
! $title_switch=0;
! $p_date_time = sprintf "%s 00:00:%02d PM", ${p_date}, ${key};
! $date{$diary_key}=$p_date_time;
}else{
#
# <%=image 0, '', nil, [256,192]%>
***************
*** 417,420 ****
&print_end();
}
}
-
--- 411,413 ----
Imageデータの移行
tDiaryでは、/images配下にYYYYMMDD_[No].jpgと言う形式で、画像ファイルを蓄積しています。 wordpressでは、/wp-content/uploads/YYYY/DD配下に任意のファイル名で画像ファイルを格納するようです。ディレクトリを掘りながらコピーするツールを作っても良かったのですが、面倒だったので、wordpressのフォルダの直下に、imagesというフォルダを作成して、そこに過去の画像データは放り込んでおくことにしました。
データの整形
tDiaryでは、Wiki形式で編集していたので、記事本文部をそのままWordpressに食わしても、意図どおりに表示されません。簡単なフィルタを用意して、データを整形しました。 記事本文の画像へのリンクも、このフィルタで反映です。やっつけで作ったフィルタですので、晒しません。
はい、やっと移行完了です。



