CentOS7のLAMPへのWordPress移行方法

VPSなどroot権限が扱えるサーバにLAMP環境を構築して、レンタルサーバーなどからWordPressをへ移設することを想定した手順をまとめています。

初めに

はじめからVPSを借りて移設用マシンを準備するのもいいですが、以下ではバーチャルボックスにVPS相当の環境を構築する手順を記載しました。サーバのスペックを見極めるなど、まずは検証環境の構築を試すといいと思います。

  1. CentOS7のダウンロード&インストール手順
  2. virtualboxのネットワーク設定

目次

1. CentOS7のセットアップ

システムアップデート

まずは、システムアップデートしてOSを最新化しておきます。

# yum -y update

ユーザ作成

原則rootユーザは外部からアクセスできないようにするため、WordPressのファイル類をサーバに転送する用途として、一般ユーザを作成しておきます。

# useradd -d /home/hpuser hpuser
# passwd hpuser

リモードでのSSH接続の設定

リモードでのSSH接続の設定です。手順は「LinuxのSSHサーバのrootの設定」に記載しています。原則rootユーザは外部からアクセスできないようにしますが、社内など特定のIPの場合rootでもアクセスできるようにしています。

スワップ領域の拡張

メモリ不足に陥らないように、もしくは評価環境と同じスワップサイズになるようにするため、スワップ領域の拡張も実施しておきたいです。

wapon、mkswapでLinuxのスワップ領域拡張」に手順をまとめています。後で実施する場合、おかしくならないか不安で実施しにくくなりますので初めに行っておくことをお勧めいたします。

2. Apache、MySQL、PHPのインストール

Apache、MySQL、PHPをインストールしてLAMP環境を構築していきます。以下は、ソフトウェアのバージョンの組み合わせによるLAMP構築手順の例です。

Apache2.4+PHP5.6+MySQL5.6のLAMP環境構築

CentOS7にApache2.4、PHP5.6、MySQL5.6をyumでインストールしてLAMP環境を構築する手順を「CentOS7にApache2.4+PHP5.6+MySQL5.6のLAMP環境構築」にまとめています。簡単に行えるので、手っ取り早くLAMP環境を構築したい場合にお勧めです。

詳細

Apache2.4+PHP7+MySQL5.7のLAMP環境構築

CentOS7にApache2.4、PHP7、MySQL5.7をyumでインストールしてLAMP環境を構築する手順を「CentOS7にApache2.4+PHP7+mysql5.7のLAMP環境構築」にまとめています。特にWordPressを使用する場合はPHP5とPHP7で大違いです。PHP7+OPCache+APCuでさらに高速に動作させる方法も記載しています。WordPress用のLAMP環境を構築する場合は参考にしていただければと思います。

詳細

3. Webサーバのセキュリティ対策

Webサーバのセキュリティ対策についてまとめています。

CentOS7のapacheでSSL評価A+にする設定手順

CentOS7のapacheのSSLの設定をSSL LabsでA+評価にする設定手順をまとめています。
例は以下の環境を前提にしております。

  • サーバ:さくらVPS
  • OS:CentOS7
  • Webサーバ:Apache2.4(Apache HTTP Server)
  • SSL証明書:RapidSSL
  • その他:さくらインターネットでVPSの契約&RapidSSL購入

centos7_apache_ssl_labs_a_plus_result_top

詳細

4. WordPress移行

移行元からMySQLのダンプとWordPressのファイル一式を採取して移行します。

MySQL移設

移行元よりMySQLのダンプを取得

WordPressの設定ファイルより、データベースの接続先を確認する。

$ cat <wordpressホームディレクトリのパス>/wp-config.php |grep DB
define('DB_NAME', '<データベース名>');
define('DB_USER', '<データベースユーザ名>');
define('DB_PASSWORD', '<パスワード>');
define('DB_HOST', '<MySQLのホスト名>');
:
$ mysqldump -h <MySQLのホスト名> -u <データベースユーザ名> -p --default-character-set=binary <データベースユーザ名> > <データベースユーザ名>_bin.dump

文字コードに差がある環境だと文字化けしてしまいますので、–default-character-set=binaryをつけてダンプを採取します。

WordPressのファイル取得

WordPressのファイルを一番上のディレクトリからごっそりコピーします。

注意点としては、バイナリ転送にこだわらず、たとえばレンタルサーバ(ujis)からWindows端末に転送する際に日本語のファイル名のファイルが文字化けしないようにファイル転送します。

データベースとユーザ作成

移行元での作業になります。

データベース領域作成
mysql> create database <データベース領域名>;
データベース領域操作ユーザ作成
mysql> GRANT ALL PRIVILEGES ON <データベース領域名>.* TO <データベース操作ユーザ名>@localhost IDENTIFIED BY '<パスワード>' WITH GRANT OPTION;

MySQLのダンプをリストア

$ mysql -h <MySQLのホスト名> -u <データベースユーザ名> -p <データベースユーザ名> < <データベースユーザ名>_bin.dump

WordPressのファイルを配置

WordPressのファイル類をWeb公開ディレクトリに配置します。

WordPressのURLの置き換え

同じドメインで切り替える場合はそのままで大丈夫ですが、検証環境などURLの変更が必要な場合は以下のツールを落としてきてデータベースを変更すると便利です。

Database Search and Replace Script in PHP

ダウンロードしてきたファイルを解凍して、WordPress一番上の階層に配置して<WordPressの一番上のURL>/Search-Replace-DB-master/にアクセス、置き換え前のドメインと置き換え後のドメインを入力して、「live run」を入力すればOKです。

完了後は必ず/Search-Replace-DB-master/を削除しないとダメです。

更新履歴

  • 2016年08月02日 Webサーバのセキュリティ対策について追記しました。
  • 2016年07月06日 Apache2.4+PHP7+MySQL5.7のLAMP環境構築について追記しました。
  • 2016年06月20日 記事をUPしました。

SNSでもご購読できます。