[Server & Network General] 新生さくらのレンタルサーバへ WordPress を引っ越すための手順 (2)
つづき。
Contents
WP-CLI をインストールする
シェルを zsh に変更
WordPress の移行には直接関係ないが、さくらのサーバのシェルを zsh に変更する。
以降、zsh 前提で記述する。
パスを追加する
~/.zshrc
にパスの設定を追加する。
# ~/local path を追加
export TMPDIR=$HOME/local/tmp
export PATH=$HOME/local/bin:$PATH
ディレクトリを作成する。
$ mkdir local/bin local/tmp
インストールと設置
wp-cli をダウンロード、設置する。
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ mv wp-cli.phar ~/local/bin/wp
composer をダウンロード、設置する(WordPress 移行に必須ではない)。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ mv composer.phar ~/local/bin/composer
参考までにシェルスクリプトにしておく。
WordPress の設定
ユーザーは、インストール時に既存サイトと同じアカウントを作成しておく。
- user
以下、WP-CLI を利用していく。
wp
コマンドは wp-config.php
のあるディレクトリで実行する。
$ cd ~/www/com.example.www/wordpress
初期化
インストール時に投稿されている不要なポストやページなどを削除する。
- category
- tag
- post
- page
- comment
# Delete all categories.
$ wp term list category --field=term_id | xargs wp term delete category
# Delete all post tags.
$ wp term list post_tag --field=term_id | xargs wp term delete post_tag
# Delete all posts.
$ wp post delete --force $(wp post list --format=ids)
# Delete all pages.
$ wp post delete --force $(wp post list --post_type='page' --format=ids)
# Delete all comments.
$ wp comment delete --force $(wp comment list --format=ids)
参考までにシェルスクリプトにしておく。
カテゴリーは必ず1つ必要なようで「未分類」は消せない。
$ wp term list category --field=term_id
1
$ wp term delete category 1
Warning: category 1 doesn't exist.
Success: Term already deleted.
オプション設定
wp option list
で必要なオプションを確認する。
- option (dashbord)
$ wp option list
+---------------------------------+-------------------------------------------------------------------------------------------------+
| option_name | option_value |
+---------------------------------+-------------------------------------------------------------------------------------------------+
| siteurl | https://stg.example.com/wordpress |
| home | https://stg.example.com/wordpress |
| blogname | New |
| blogdescription | Just another WordPress site |
:
| date_format | Y年n月j日 |
| time_format | g:i A |
:
| permalink_structure | /%year%/%monthnum%/%day%/%postname%/ |
:
サイトに応じて必要なものを設定する。
wp option update
で実行する。
wp option update siteurl 'https://stg.example.com/wordpress'
wp option update home 'https://stg.example.com/wordpress'
wp option update blogname 'foo'
wp option update blogdescription ''
wp option update timezone_string 'Asia/Tokyo'
wp option update date_format 'Y/m/d'
wp option update time_format 'H:i'
wp option update permalink_structure '/blog/%year%/%monthnum%/%day%_%post_id%.html'
参考までにシェルスクリプトにしておく。
記事データと画像の移行
以下の点から、XML ファイルのエクスポート・インポートでデータ移行を行う事とする。
- DB Version, Engine が変わる
- MySQL innodb の key prefix length の制限。
XML ファイルのエクスポート
現行の WordPress から WXR をエクスポートする。
- 「ツール > エクスポート > すべてのコンテンツ」から XML ファイルをエクスポートする。
XML ファイルのインポート
- 「ツール > インポート > WordPress」から書き換えた XML ファイルをインポートする。
- 「添付ファイルをダウンロードしてインポートする」を選択し、しばし待つ。
もしインポートするファイルのサイズが WordPress Dashbord に表示されている最大サイズより大きい場合は、さくらのレンタルサーバの「コントロールパネル > PHP設定の編集」でサイズを変更する。
post_max_size = 20M
upload_max_filesize = 20M
「メディア のインポートに失敗しました」と表示されるが無視する。
(前段のアップロード可能最大サイズを画像込みのサイズにすれば、失敗しないものと推測される。)
メディアファイルのインポート
元サイトからメディアファイル(画像)を SFTP 等でインポートする。
ディフォルト設定であれば、下記パスの「年/月」フォルダが対象。
- 元サイトの /wordpress/wp-content/uploads/年/月
前段の「メディアのインポート」に成功していれば必要ない。
プラグインとテーマ
- plugin
- theme
プラグインとテーマの同期
プラグインとテーマファイルを同期させておく。
「さくらのレンタルサーバ かんたんインストール」でディフォルトインストールされるプラグインと必要なプラグインを同期させる。
- /wp-content/plugins/
同じく必要なテーマを同期させる。
- /wp-content/themes/
プラグインの有効化と設定
各プラグインの有効化と設定を GUI で行う。面倒くさい
プラグインによっては、設定のエクスポートとインポートができるものもある。
テーマのカスタマイズ設定
表示に必要な設定を行う。
操作は Dashbord からが進めやすい。
- メニューを設定
- サイドバーを設定
- ウィジェットを設定
動作確認
ページが意図したとおりに表示されるか確認する。
- WXR のインポート で改行が詰められてしまうので markdown が壊れた。
- カテゴリの親子関係が壊れた(ex. WordPress > WordPress の親と子がマージされ子がなくなった)。
後で直す。
サイトルートに表示する設定
必要に応じて、サブディレクトリに設置した WordPress をサイトのルートに表示するよう変更する。
- 現状、下書きのプレビューが 404 となる。
ToDo
ここまでの積み残しは以下の通り。
- 「ドメイン/SSL設定」の本番環境への切り替え。
- 「Webアプリケーションファイアウォール」の設定を保留。
- 「バックアップ & ステージング」の設定を保留。
確認
- WXR のインポート で改行が詰められてしまうので markdown が壊れた。
- カテゴリの親子関係が壊れた(ex. WordPress > WordPress の親と子がマージされ子がなくなった)。
- 現状、下書きのプレビューが 404 となる。
つづく。