2016年12月18日日曜日

Webサーバ移行

CentOS7をインストールしたサーバの準備も一通りできたので、ThinkPad X21にCentOS6をインストールして使用している壊れかけのHDDのサーバから移行する。

手順はざっくりと

  1. Apacheバーチャルホストの設定
  2. コンテンツ移動
  3. MySQL DBデータ移動
  4. http(80番)ポート開放

という感じかな。

Apacheバーチャルホスト設定。

CentOS 7はApacheのバージョンが2.4になったので「NameVirtualHost」の設定は不要になったようだ。

バーチャルホストの設定は移行元のサーバの

/etc/httpd/conf.d

の中身をscpでコピー。

バーチャルホストの設定のコピーが完了したらApacheを再起動してバーチャルホストの設定を反映させる。

# systemctl restart httpd.service

コンテンツ移動。

Apacheドキュメントルートを特定グループ所属のIDで更新可能にしておく。

# cd /var
# chgrp group www
# chmod g+w www

Webのコンテンツは移行元のサーバの

/var/www

の中身をscpでコピー。

MySQL DBデータ移動。

DBデータを移行するためにまずDBとテーブルを作成する。

$ mysql -u root -p
create database xxxxxxxx default character set utf8 collate utf8_general_ci;
確認
show databases ;
ID作成
grant all on xxxxxxxx.* to xxxx@localhost identified by 'xxxxxxxx';
テーブル作成
移行元のサーバで
show create table xxxxxxxx;
でテーブルのcreate文を生成。
移行先のサーバで生成したcreate文を実行。
確認
show tables ;

DBのデータをコピーする。移行元のサーバでmysqldumpを使ってデータを取り出し、scpで移行先のサーバにデータ移動、移行先のサーバにデータ投入という手順。

移行元のサーバでのmysqldump

mysqldump -p -u root -t -x --tables table1 table2 > db.sql

移行先のサーバでのデータ投入

mysql -u xxxx -p xxxxxxxx < db.sql

http(80番)ポート開放。

iptablesの設定を変更しようと試みたが、コマンドが無い。centos7ではFirewalldに変わったらしい。

Firewalldで以下のような設定にしてみた

# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/xxxxxxxx.xml
# firewall-cmd --reload
# firewall-cmd --permanent --add-service=http --zone=xxxxxxxx
# firewall-cmd --reload
# nmcli con mod enp5s0 connection.zone xxxxxxxx
# firewall-cmd --get-zone-of-interface=enp5s0

これで移行完了。サーバのIPアドレスの入れ替えれば移行先のサーバで稼動開始。

viで/etc/sysconfig/network-scripts/ifcfg-enp5s0を編集してサーバのIPアドレスを変更する。

サーバ再起動。

移行先のサーバで稼動開始。

0 件のコメント:

コメントを投稿