CentOS51でバックアップサーバ/(2)コンテンツ移行

Last-modified: 2008-07-10 (木) 11:33:32 (5788d)

インストールと基本設定

主なアプリとコンテンツ

  • OSインストールで入れ物ができて、アプリとコンテンツを移行してサーバとして完成させる。毎度のことながら、主な内容は、
    • トップページ類(html)
    • 掲示板関係(CGI)
    • wiki(pukiwiki)
    • Blog(Wordpress+MySQL)
    • SNS(OpenPNE+MySQL)
  • データベース以外は、丸コピーで問題ない。文字コードに関しては、前回苦労してutf-8に変換済みなので、その点は楽。
  • ターゲットとなるディレクトリーは以下のとおり
    /var/www/html/
    /var/www/cgi-bin/
    /var/www/OpenPNE/
  • 設定関係のファイルも、忘れずにコピーしておく
    /etc/httpd/conf/httpd.conf
    /etc/php.ini
    /var/www/.htpasswd

コピー方法

  • 現在のサーバ側で、各ディレクリー/ファイルをtarで圧縮
  • WinSCPを使って、端末を経由して、新サーバへコピー
  • 新サーバ側で、圧縮ファイルをそれぞれ解凍する
現サーバ側:各ターゲットの上位のDIRに移動して、圧縮
[root@kuraric5 ~]# cd /var/www
[root@kuraric5 www]# tar cvf html_bak20080316.tar html/
(以下同様に)

[eizo@kuraric5 ~]$ ls -l 20080316bak/
合計 766160
-rw-r--r-- 1 root root  22056960  3月 17 11:21 OpenPNE_bak20080317.tar
-rw-r--r-- 1 root root   2457600  3月 16 15:21 cgi-bin_bak20080316.tar
-rw-r--r-- 1 root root 759142400  3月 16 15:21 html_bak20080316.tar
-rw-r--r-- 1 root root     10240  3月 17 11:19 htpasswd_bak20080317.tar
-rw-r--r-- 1 root root     40960  3月 16 15:33 httpd_conf_bak20080316.tar
-rw-r--r-- 1 root root     51200  3月 16 15:29 php_ini.tar
  • html/関係をまとめると、結構なサイズのファイルになり転送も時間がかかるが、まぁ、イメージデータも多いのでしょうがないということで。
新サーバ側:同じDIRで、解凍
[root@kuraric51 ~]# cd /var/www
[root@kuraric51 www]tar xvf html_bak20080316.tar
  • ただし、例によって、デフォルトでファイアウオールが起動しているので、これを解除する。また、httpd.confを変更した場合は、httpdの再起動が必要。これはは忘れずに。
[root@kuraric51 ~]# chkconfig --list iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@kuraric51 ~]# chkconfig iptables off
[root@kuraric51 ~]# chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@kuraric51 ~]# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
  • 以上で、トップページ、掲示板、wiki等のMySQLが絡んでいないコンテンツは正常に動作する。

アプリソフト

  • MySQLインストールは、前回同様実施。手順はwikiの記事のとおり。パスワード設定、不要なDB削除などを忘れずに。
  • なお、 /etc/my.conf のコピーを忘れたので、その設定(文字コード関連)も忘れずに。詳細は前回のwiki参照
  • データベースの移行には、「phpMyadmin」を使ってきたが、これは html/配下に含まれているので、あらめてのインストール作業は不要。ただし、php-mysqlがインストールされていないと起動しないので、忘れずにインストールすること!
[root@kuraric51 ~]# yum -y install php-mysql

Wordpressのデータ移行

  • 前回同様、phpMYadminを使って、「エクスポート」「インポート」する。 手順は、前回と同じだが、文字コードの変換は不要。
  • インポート時の注意事項としては、あらかじめ新サーバ側で、Wordpressが使用するデータベースとユーザを作成しておく必要がある。さもないと、インポート時にエラーとなってしまう。
  • 前回どうだったか忘れた? (Wordpress自体のインストールやセットアップをやったので、その点が違うといえば違うかな。。。)
[root@kuraric51 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9 to server version: 3.23.58

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

mysql> grant all on *.* to kurari identified by 'kurari';  ←ユーザ作成、パスワード設定
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> create database wordpress;         ← データベース作成
Query OK, 1 row affected (0.02 sec)
  • これで、あっけなくWordpress は完了!

OpenPNEの移行 ーー mysqldump を使う! 

  • これは初挑戦だが、インポートでいきなりこけた(^^;)
    エラー!!
    恐らくあまりにも大きなファイルをアップロードしようとしました。
  • Wordpress と同じ手順で行くと思ったら、ファイルサイズが桁違いの大きさ
     wordpress  700KB少々
     openpne    8MBを超え
  • さぁ、弱ったぞというわけで、ネット検索。答えはあった。mysqldumpでバックアップ&復元
  • mysqldump というコマンドがあった。基本的な使い方は、 mysqldump.jpg

  • これを使ってみたら、一発だった。
  • ①現サーバ側
    まず、dump 保存先に注意! 
    [root@kuraric5 www]# mysqldump -u root -p管理者パスワード openpne > openpne_dump20080317
    [root@kuraric5 www]# ls 
    OpenPNE      error                    icons
    html         openpne_dump20080317     cgi-bin  
  • ②WinSCPで、端末経由で新サーバにコピーする
  • ③新サーバ側:
    (1)まず、OpenPNE用のユーザとデータベースを作成しておく
    [root@kuraric51 www]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3 to server version: 5.0.22
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> CREATE DATABASE `openpne` DEFAULT CHARACTER SET utf8;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> exit
    Bye
    
    (2)続いて、リストア実行
    [root@kuraric51 www]# mysql -u root -p管理者パスワード openpne < /home/eizo/openpne_dump20080317
    
    (3)URLの調整 /sns/で接続できるように
    [root@kuraric51 www]# echo "Alias /sns /var/www/OpenPNE/public_html" > /etc/httpd/conf.d/openpne.conf
    
    (4)httpdとmysqldを再起動する
    [root@kuraric51 www]# /etc/rc.d/init.d/httpd restart
    httpd を停止中:                                            [  OK  ]
    httpd を起動中:                                            [  OK  ]
    [root@kuraric51 www]# /etc/rc.d/init.d/mysqld restart
    MySQL を停止中:                                            [  OK  ]
    MySQL を起動中:                                            [  OK  ]
  • とまぁ、いとも簡単でした。データ移行するだけなら、phpmyadminより簡単だった。Wordpressもこの手でいけると思うが、まだ試してはいない。

cron設定を忘れずに!

  • 新しくサーバを構築した場合、OpenPNE用のcron登録(デイリーニュース配信等の定期作業等)設定は引き継がれていない。
  • 面倒でも、再度コマンドを実行して、同じ内容で登録しておくこと。
    [root@kuraric51 www]# crontab -e 
  • 詳細はCentOS5で新サーバ構築/(8)OpenPNEのインストールの『・OpenPNE用のcron登録』を参照

接続試験では、hostsの修正も忘れずに!

  • パソコンから接続試験するためには、hostsファイルの設定変更が必要
    C:\WINDOWS\system32\drivers\etc\hosts
    ================
    192.168.1.230   kurarinet.com	#kurari_C51 2008/3/17
    #192.168.1.250	kurarinet.com	#kurari_C50
    ================
  • これを書き換えておかないと、どっちのサーバに接続しているのか分からんことに。
  • というわけで、またひとつ新しいことを覚えました(^^)

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元