今回から3回にわたって、社内Blogを掲載している現在稼働中のMOVABLE TYPE Ver4.2jp環境からVPSサーバ(CentOS5) & WordPress3.0jaへのデータ移行の検証を報告します。
移行に当たっての大まかな流れとしては、
1、VMWare上でWordPressの検証環境の構築
2、稼働中のMOVABLE TYPE上のblogデータをexport、画像等のデータ転送
3、検証環境上で稼働させたWordPressで(2、)で実施したexportデータのimport、パーミッション調整
4、パーマリンク等の修正作業
5、確認
としています。
さて、まずは今回使用した検証環境を以下に紹介します。
【使用PC】
IBM Thinkpad x60
CPUCore2 : 1.6GHz
Memory : 2GB
HDD : 200GB
OS : Windows 7 Ultimate
【移行元環境】
XREA : Linux2.6(Free Web Hosting環境)
Apache : 2.2
PHP : 5
MySQL: 5.1.20-beta
MOVABLE TYPE : 4.2.2jp
【移行先環境】
VMWare : 7.0.1
ゲストOS : CentOS5.5(サーバパッケージをインストール)
仮想CPU : 2CPU
仮想メモリ容量 : 1024MB
仮想HDD容量 : 32GB
IPアドレス : 192.168.117.130(仮 社内イントラネットIPアドレス)
ホスト名 : localhost
※ VM環境作成やLinuxインストールの手順は他記事で詳細が出ているのでそちらを参照ください。
【移行先MW環境】
httpd.i386 : 2.2.3-43.el5.centos
httpd-manual.i386 : 2.2.3-43.el5.centos
ant-apache-bcel.i386 : 1.6.5-2jpp.2
ant-apache-bsf.i386 : 1.6.5-2jpp.2
ant-apache-log4j.i386 : 1.6.5-2jpp.2
ant-apache-oro.i386 : 1.6.5-2jpp.2
ant-apache-regexp.i386 : 1.6.5-2jpp.2
ant-apache-resolver.i386 : 1.6.5-2jpp.2
php.i386 : 5.1.6-27.el5
php-cli.i386 : 5.1.6-27.el5
php-common.i386 : 5.1.6-27.el5
php-ldap.i386 : 5.1.6-27.el5
php-mysql.i386 : 5.1.6-27.el5
php-pdo.i386 : 5.1.6-27.el5
mysql.i386 : 5.0.77-4.el5_5.3
mysql-server.i386 : 5.0.77-4.el5_5.3
※ 上記MWのインストールは全てyumで実施しています。
Wordpress : 3.0ja
1.Webサーバの準備(apache)
apacheの環境設定を実施するのでhttpd.confを3項目修正
# cp -p /etc/httpd/conf/httpd.conf httpd.conf_org
# vi /etc/httpd/conf/httpd.conf
まずはDocumentRootを変更します。
変更前: DocumentRoot "/var/www/html"
変更後: DocumentRoot "/var/www"
次にCGI関連の設定を変更します。
変更前:
Options Indexes FollowSymLinks
変更後:
#Options Indexes FollowSymLinks
Options Includes ExecCGI FollowSymLinks
最後にアクセス関連の設定を変更します。
変更前:
AllowOverride None
変更後:
#AllowOverride None
AllowOverride All
変更が終了したらapacheを再起動します。
# /etc/rc.d/init.d/httpd reload
2.DBの準備(mysql)
mysqlのDB作成やユーザ作成はターミナルから手作業で実施。
環境によってはphpmyadminで作成しても良いと思います。
今回の検証では、
DB名: TESTvolv
ユーザ名: TESTuser
パスワード: TESTuser
として作成しました。
始めにmysqlの起動、自動起動設定を行います。
# ps -ef | grep mysql ←mysqlが起動していない事を確認します。
# /etc/rc.d/init.d/mysqld start
MySQL を起動中: [ OK ]
# chkconfig mysqld on
# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
mysqlにログインし、DB領域を作成します。
# mysql -u root -p
Enter password: ←パスワードを入力(mysqlインストール直後はnonpassです)
mysql> CREATE DATABASE TESTvolv;
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| TESTvolv | ←TESTvolvのDBが作成されている。
| mysql |
| test |
+--------------------+
次にユーザを作成します。
mysql>
GRANT ALL ON TESTvolv.* TO TESTuser@localhost IDENTIFIED BY 'TESTuser';
mysql> SELECT user FROM mysql.user;
+----------+
| user |
+----------+
| root |
| |
| TESTuser | ←TESTuserが作成されている。
| root |
| |
| root |
+----------+
mysql> SHOW GRANTS FOR TESTuser@localhost;
+----------------------------------------------------------------------------------------+
| Grants for TESTuser@localhost |
+----------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'TESTuser'@'localhost' IDENTIFIED BY PASSWORD '3e7947093688c8f0' |
| GRANT ALL PRIVILEGES ON `TESTvolv`.* TO 'TESTuser'@'localhost' |
+----------------------------------------------------------------------------------------+
↑TESTuserにTESTvolvへの権限が付与されている。
3.WordPressのインストール
WordPress日本語サイトよりモジュールをダウンロードします。
FTPもしくはSCPでサーバ上へモジュールをアップロードします。
アップロード先ディレクトリは apacheのDocumentRootで指定した /var/www です。
アップロードしたファイルの展開、アクセス権の設定を行います。
# cd /var/www
# unzip wordpress-3.0-ja.zip (今回はzipモジュールをダウンロードしています)
# ll
drwxr-xr-x 5 root root 4096 6月 22 23:49 wordpress
# chown -R apache:apache wordpress
# ll
drwxr-xr-x 5 apache apache 4096 6月 22 23:49 wordpress
WordPressの環境設定ファイルの編集を行います。
サンプルファイルをconfigファイルとしてコピーします。
# cp -p /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
DB接続の設定3箇所を変更します。
# vi /var/www/wordpress/wp-config.php
まずはデータベース名を変更します。
変更前:
define('DB_NAME', 'database_name_here');
変更後:
define('DB_NAME', 'TESTvolv');
次にデータベース接続パスワードを変更します。
変更前:
define('DB_USER', 'username_here');
変更後:
define('DB_USER', 'TESTuser');
最後にデータベース接続パスワードを変更します。
変更前:
define('DB_PASSWORD', 'password_here');
変更後:
define('DB_PASSWORD', 'TESTuser');

