備忘録

開発の日々の備忘録

wordpressサーバーの移転をしたメモ


サーバーを新調したので、古いサーバーで稼働中のwordpressを新サーバーへと移転した。
備忘録。

ついでにPHPMySQLApacheを最新のものに変えた

  • php-5.3.6→7.0.1
  • mysql-5.5.10 →5.7.10
  • httpd-2.2.17 →2.4.18

    作業内容


大した作業はしてない。 ざっくりまとめると、

  • 移行元 wordpress本体(wordpress-X.X.X-ja.tar.gzで展開されるディレクトリ)をごっそり移行先にコピー
  • 移行元 DBをエクスポート
  • 移行先 wordpress本体を展開
  • 移行先 DBをインポート

やったこと


下準備

とりあえず移行元のwordpressを管理画面から最新に更新
移行先DBにwordpressで使ってたDBユーザーを作っておく
(アカウントの設定はwp-config.phpに書かれてる )

wordpressファイルの移行

wordpress本体をrsyncで移行先にSSH転送
(DocumentRoot長いからとりあえず/var/www/wordpressてことにする)

 //移行元で実行
 $ sudo rsync -avz  /var/www/wordpress SSHユーザー名@ホスト名:/var/www/

rsyncはコピー元PATHの末尾の"/"があるかないかで挙動が変わるから注意

Command Technica:はじめてrsyncを使う方が知っておきたい6つのルール (1/2) - ITmedia エンタープライズ

DBの移行

mysqldumpでDBをエクスポート&SCPで移行先にdumpを転送
移行元で実行

 $ /usr/local/mysql/bin/mysqldump -u root -p wordpress > wordpress.dump
 $  scp -P /tmp/wordpress.dump SSHユーザー名@ホスト名:/tmp

DBをインポート
移行先で実行

 $ /usr/local/mysql/bin/mysql -u root -p wordpress < /tmp/wordpress.dump 

あとはhttp経由で移行できてるか確認

エラー

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

PHP7からMySQL拡張が利用できなくなり、wordpressではMySQLi拡張を使用するらしい

mysqliを有効にしてphp再インストール&apache再起動

$ sudo /usr/local/apache2/bin/apachectl stop
$ cd /usr/local/src/php-7.0.1
$ make distclean
$ ./configure  --with-pdo-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--without-gd \
--with-zlib \
--with-curl
$ make
$ sudo make install
$ sudo /usr/local/apache2/bin/apachectl start

確認したらちゃんと動いてた。

オワリ