目次
引っ越しました
お久しぶりです。(半年ぶりの投稿)
就職に伴い、リアルでも引っ越したながてちです。
とりあえずの目標は、会社名を出しても怒られないエンジニアになることです。
就職してお金に余裕ができたので、ブログを運用してる鯖のスペックをあげようと思ったのですが、使ってるConoHaでは最安値のプランではプランの変更ができないという制約がありました。
ならいっそのことDockerにのせていい感じにしようと移行作業をしたら、結構時間がかかったので生存報告もかねてやったことを書こうと思います。
ちなみにもう移行作業は終わってて、このブログは新サーバで動いています。
ついでに使ってるテーマの更新もしたので見た目がいい感じになっています。
ブログの鯖移行作業を進めてるんだけど、その過程でテーマのアップデートをしたらめちゃモダンな感じになってかっこよくなった pic.twitter.com/J7RlF48qRh
— ながてち (@_nagatech) June 23, 2020
やったこと
もともと記事を書かないつもりだったのでスクショが少ないです。ごめんなさい。
1. DockerでWordPressを建てる
いろんな記事見ながらdocker-compose.yml
とその他必要なファイルを書きました。
永続化のために、DBのデータとWordPress本体のファイルはvolumeに指定しています。
php.ini
は書かないとWordPress側のアップロードサイズ制限がデフォの2MBに設定されてしまい、以降の作業で詰みます。値は適当です。
立ち上がったらサイトのURLを適当なサブドメインにして初期設定を完了させます。(あとで元のURLに戻します)
そのURLでブログにアクセスできるようにします。以降の作業はWordPress上で行います。
2. 旧WordPressで記事をエクスポートし、新WordPressにインポートする
ググったら出てくるプラグイン等は使わず、WordPressにデフォルトで備わってるインポート/エクスポートの機能を使いました。

画像が無くて申し訳ないのですが、ここまででWordPressのデフォルトのテーマで記事だけが存在している状態になります。
3. 画像を旧サーバから新サーバに移す
使っているプラグイン(もしくはデフォルトのエクスポートツール)が悪かったのかもしれませんが、リサイズされた画像が一切コピーされずにhoge.png
は表示されてhoge-150x150.png
は表示されない(404が返ってくる)みたいな状態になってしまいました。
なので、scpコマンドを使い、画像が入っているフォルダ(wp-content/uploads
以下)を全部新サーバにコピーしました。
画像の所有者・パーミッションを新サーバのものにするのを忘れずに。
4. テーマをインストールする
このテーマを使いたいためだけに静的サイトジェネレータを使わずにWordPressを使っていると言っても過言ではないくらい気に入っているyStandardをインストールしました。
(つい最近v4がリリースされて、結構破壊的変更も加えられてv3からのアップグレードも大変そうだったのですが、最初からインストールしちゃえば関係ないですね!)
インストール後はカスタムCSSやテーマの設定を旧WordPressの設定を見ながら必要な部分はそのままコピーし、必要でない部分はそのまま適用しないといったことをやりました。
これのおかげで今の構成を見直すいいきっかけになりました。
5. ドメインを元のドメインに戻す
旧WordPressと似た新WordPressが出来上がったらいよいよドメインを元に戻して旧WordPressへのアクセスを新WordPressにします。
やることとしては、
- WordPressのアドレスを元のドメインにする(設定の一般から変更できます)
- 記事内部の画像のurlを元ドメインに書き換える(インポートする際に仮ドメインに書き換わってしまうので元のドメインに戻します。一括置換のプラグインはSearch Regexを使いました)
- Webサーバ(nginx)の設定を元ドメインの設定に書き換える
- DNSレコードの設定を旧サーバから新サーバへ設定し直す
といった感じで移行をすすめました。
うまく行けば(パーマリンクの設定を元のままにすれば)元のURLで新WordPressにアクセスできます。
ブログの鯖移行完了しました🎉https://t.co/A9FqwsRTA6
— ながてち (@_nagatech) June 23, 2020
ちょっと見た目がカッコよくなった以外にはデザイン的もURL的にも変わってない
内部的には、
・鯖がちょっと強くなった(メモリ1GBプラン)
・dockerに乗ってる
という感じ
ハマったこと
ハマったことを書いておきます。
上のやったことに対策をそのまま含めているので、上の手順ではハマらないようになってるはずです。(たぶん)
「アップロードしたファイルは php.ini で定義された upload_max_filesize を超過しています」というエラーが出る
テーマのインストール時にテーマのファイルが2MBを超えていたときに発生したWordPress側のエラー。
そんなの定義した覚えがないがって思って色々調べたら、そんなの定義されてないので新しく自分でphp.ini
を作って配置しないといけないらしいです。
場所はWordPressのdocker imageだと/usr/local/etc/php/conf.d/
以下に配置した状態で再起動したら解決。
元のドメインに書き換え時にMixed contentでjsファイルやcssファイルがブロックされる
新サーバでの作業時にhttpで作業してたのが原因。
元のドメインはhttpsで動作してたため、httpで開こうとしている全コンテンツがChromeによりブロックされて、ブログが崩壊します。

こうなったら慌てず落ち着いてそのままの状態でログインし、設定の一般をクリックし、WordPress アドレス、サイトアドレスを旧ドメイン(httpsの状態)に書き換えます。
変更を保存ボタンを押すと、馴染みのあるページに戻ってくると思います。
(最初コレになったときめちゃくちゃ焦りました)
おしまい
鯖の引っ越しに伴ってWordPressをDockerで建てて移行を頑張った話でした。
画像のリンク切れ等あったらこっそり教えてください。