サーバー移行で WordPressを丸ごと移行

はじめに

先日自宅サーバーを CentOS7 から CentOS8 に移行しました。
最初は WordPress の移行がうまく行くものか不安だったので、尻込みしていました。

でも私の場合はディレクトリ構造やデータベース構造を全く変えずに移行しますので、恐らく簡単な作業だけだろうと、思い切ってやってみることにしました。

環境は以下の通りです。

【移行前】
OS                 :CentOS7
WEBサーバー:Apache 2.4.6
PHP               :PHP7.3
DB                 :mariadb 10.3.17

【移行後】
OS                 :CentOS8.1
WEBサーバー:Apache 2.4.37
PHP               :PHP7.3
DB                 :mariadb 10.3.17

旧サーバーにおけるバックアップ

WordPressコンテンツのバックアップ

WordPressコンテンツについては、WordPressインストールディレクトリ (例として「/path-to-wordpress-data/wordpress」) を丸ごとバックアップすればオッケーです。なお、スーパーユーザーで実行しておけば、所有者情報やパーミッション情報も維持したままアーカイブ・圧縮されます。

WordPressデータベースのバックアップ

mariadb のDB (例として DB名「wordpress」) もエクスポートします。

新サーバーにおける事前作業

Apacheの設定

CentOS7 から CentOS8 に変更したことにより Apacheのバージョンは 2.4.6 から 2.4.37 に変わりましたが、WordPressを移行するに当たり留意することは特にありません。
新サーバーでも旧サーバーと同様の設定を行い、WEBサービスを稼働できる状態にします。

PHP の設定

CentOS7 の標準リポジトリでインストールされる PHPは PHP5系でしたが、私は PHP7.3 をインストールして利用していました。
ちなみに私が PHP7.4 を利用していなかったのは、単に ownCloud が2020年5月時点で PHP7.3 までしか対応していなかったからであり、WordPressのことだけ考えるのであれば PHP7.4 以降でも全然問題ありません。

そんな訳で私の場合は新サーバー (CentOS8.1) においても PHP7.3 をインストールすることにします。私の場合は下記のようなパッケージをインストールしました。

php.ini の編集についても、CentOS7 の時と変わりありません。
私の場合は以下のように編集しました。

mariadb の設定

CentOS8 の標準リポジトリから mariadb をインストールすると旧バージョンがインストールされます。
私も一度旧バージョンをインストールしてしまったので、アンインストールしてから再び最新バージョンをインストールし直したのですが、そうするとなぜか初期セットアップのパスワード入力のところでエラーが発生してしまい、その先へ進めない状態になってしまいました。
単に dnf コマンドでアンインストールするだけでなく、関連ディレクトリも完全に削除することで問題は解決しました。

この上で最新バージョンをインストールします。

初期セットアップを起動し、管理者パスワード等の設定を行います。

旧サーバーでバックアップした WordPress用DBを新サーバーに書き戻すためには、旧サーバーで使用していたユーザー名およびDB名を新サーバーにもあらかじめ追加しておきます。(例として、ユーザー名:wordpress、DB名:wordpress)

以上で、バックアップデータを書き戻すための準備作業は完了です。

新サーバーにおけるバックアップデータ書き戻し作業

WordPress コンテンツの書き戻し

旧サーバーでバックアップしておいた「wordpress_back.tar.gz」を新サーバーに書き戻します。旧サーバー上で所有者情報・パーミッション情報を維持したままアーカイブ・圧縮しましたので、単純に解凍するだけです。
私の場合は新サーバーにおけるWEBサーバーのドキュメントルートは旧サーバーと全く同じです。wordpress コンテンツも旧環境と同様にその直下に配置します。(例として「/path-to-document-root/wordpress」)

WordPress データベースの書き戻し

旧サーバーでバックアップしておいたmariadb のDB (ここではDB名:「wordpress」) を新サーバーに書き戻します。
既に述べた通り、あらかじめ旧サーバーで使用していたmariadbユーザー名とDB名と同じものを新サーバーのmariadbにも追加しておきます。
その上で以下のコマンドを実行します。

 動作確認

WordPressサイトにアクセスしてみると、すべてのページが問題なく表示されています。
複雑なデータベース構造をしているWordPressサイトですが、ディレクトリ構造などを全く変更しないようなサーバー移行であれば、特にDBを修正することなく、単純にデータをコピーするだけで大丈夫なんですね。

コメント

タイトルとURLをコピーしました