すたらブログ

文系Webプログラマの備忘録

DBにMySQLを使っているリモートのWordPressをアップグレードする

目次

関連記事: DBにSQLiteを使っているリモートのWordPressをアップグレードしたい


要望

  • さくらサーバ(スタンダード)に設置しているWordPressをアップグレードしたい。
  • 正常に更新できるかどうか、まずローカルで試したい。

環境

  • WordPress最新版: 4.3.1
  • 使用するデータベース: MySQL
  • ローカル
    • OS: Windows 7
    • Webサーバ等: XAMPP
    • 解凍されたWordPressの場所: C:\Users\(ユーザ名)\Downloads\wordpress-4.3.1-ja\wordpress
  • リモート
    • Webサーバ等: さくらサーバ (スタンダード)
    • URL: http://example.com

データベースの移植

リモートのデータベースをエクスポートする

リモートのphpMyAdminを開き、WordPress用のデータベースを選択します。

エクスポートを選び、選択項目は何も変更せずに実行するを選びます。

ローカルの一時的なデータベースにインポートする

ローカルのphpMyAdminを開き、仮のデータベースを作成します。
今回は名前をtmp_wp、照合順序はutf8_general_ciとします。

その後、作成したデータベースを選択し、インポートを選び、エクスポートしたファイルを選択して実行を選びます。


バックアップ

リモートのWordPressフォルダ全体をダウンロードし、保管しておいてください。
もしも以後の作業が失敗したら、保管したフォルダとエクスポートしたデータベースでリモートを元の状態に戻すことができます。


最新版のWordPressを入手する

日本語の公式サイトから最新版を入手し、解凍しておきます。

解凍後、WordPressは下記の場所にあるものとして話を進めます。
C:\Users\(ユーザ名)\Downloads\wordpress-4.3.1-ja\wordpress


ローカルで、一時的なバーチャルホストを設定する

http://example.comへのアクセス先がローカル内となるよう、一時的に変更します。
本来のリモートのページを見られなくなってしまいますが、WordPress アドレスサイトアドレスを変更するよりもお手軽だと思います。

下記のようにhttpd-vhosts.confhostsの2つのファイルに設定を追記してください。

C:\xampp\apache\conf\extra\httpd-vhosts.conf

# 以下を追記する
<VirtualHost *:80>
    DocumentRoot "C:\Users\(ユーザ名)\Downloads\wordpress-4.3.1-ja\wordpress"
    # リモートと同じ名前にすること
    ServerName example.com
</VirtualHost>
<Directory "C:\Users\(ユーザ名)\Downloads\wordpress-4.3.1-ja\wordpress">
    AllowOverride All
    Require all granted
</Directory>

C:\Windows\System32\drivers\etc\hosts (管理者として実行したエディタで開く)

# 以下を追記する
127.0.0.1 example.com

その後、XAMPPのコントロールパネルを管理者として実行し、Apacheを再起動するために一旦「Stop」させて「Start」します。

ドキュメントルートのパスに日本語が含まれている場合

上の例で言えばユーザ名がHanakoのような英数字ではなく田中花子のような日本語の場合。
そのままではドキュメントルートに指定できないので、英数字のみのパスからシンボリックリンクを作成する必要があります。
ドキュメントルートにはそのシンボリックリンクを指定してください。

コマンドプロンプト (管理者として実行)

mklink /d c:\eisuuji\no\path c:\日本語を\含む\パス

wp-config.phpを作成・編集する

解凍した最新版の中のwp-config-sample.phpをコピーしてwp-config.phpに名称変更します。
そしてその内容をローカルのMySQLの設定に合わせます。

MySQL 設定』

データベース名は先ほど作成した仮のデータベースを指定します。
ユーザー名とパスワードは、XAMPPをインストールした状態のまま変更していない場合は下のようになります。
ローカルの、しかも仮のデータベースなのでこれで問題ありません。

wp-config.php (抜粋)

<?php
/** WordPress のためのデータベース名 */
define('DB_NAME', 'tmp_wp');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'root');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');
?>

『認証用ユニークキー』

認証用ユニークキーは、リモートwp-config.phpの値をコピーして下さい。
ファイルをダウンロードするか、FFFTP上で右クリックして開くを選べば中身を確認できます。


プラグインやテーマのフォルダを設置する

使用しているプラグインやテーマのフォルダやファイルを、最新版のWordPressの中に適切に設置してください。


ブラウザでhttp://example.com/のダッシュボードを開く

リモートではなくローカルのWordPressへ正しくアクセスできれば、下記のようにデータベースの更新を促されるはずなのでそれに従ってください。

この後でダッシュボードが表示されるので、WordPressが最新版となっていることを確認してください。

プラグインを有効化する

使用するプラグインをダッシュボード画面で有効化してください。
プラグインの更新を促された場合はそれに従ってください。

パーマリンク設定を保存する

パーマリンク設定をデフォルト以外にしている場合は、改めて設定画面で変更を保存する必要があります。
ダッシュボード > 設定 > パーマリンク設定を選び、何も変更せずに変更を保存を選んでください。
この作業を経ないとパーマリンク設定が反映されないようです。


一時的なバーチャルホスト設定を削除する

記事の表示やプラグインの動作が最新版のWordPressで正常に行われることを確認したら、先ほど作成したバーチャルホストの設定を削除して元に戻してください。


wp-config.phpの内容をリモート用にする

MySQL 設定の該当項目をリモートの設定に変更してください。
さくらサーバの場合は下記のようになると思います。

wp-config.php (抜粋)

<?php
/** WordPress のためのデータベース名 */
define('DB_NAME', '(アカウント名)_(データベース名)');

/** MySQL データベースのユーザー名 */
define('DB_USER', '(アカウント名)');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '(データベースのパスワード)');

/** MySQL のホスト名 */
define('DB_HOST', 'mysql(番号).db.sakura.ne.jp');
?>

ローカルのWordPressをリモートにアップロードする

ローカルのWordPressフォルダの中身をそのまま丸ごとアップロードしてください。
ローカルの場合と同じく、ダッシュボードを開こうとするとデータベースの更新を促されるのでそれに従ってください。
これでアップグレードは完了です。