昔、ただでWordPressを動かしたくてHerokuで環境を作ったのだが、腹をくくってWordPressが使えるサービスを契約したので、お引越し。
Herokuを選ぶ時点でそれなりに知識があるのだろうということで、細かいことは端折って短めに。
クラウド・アプリケーション・プラットフォーム | Heroku
Heroku は、アプリケーションの開発から実行、運用までのすべてをクラウドで完結できる PaaS(サービスとしてのプラットフォーム)です。
WordPressのバージョンが古くて危険
Herokuで動かすために使ったのは、これ。
GitHub - mhoofman/wordpress-heroku: Template project for deploying WordPress to Heroku
バージョン4.xは今となってはちょっと。最新バージョン…はいろいろあるにしても、それに近いバージョンに上げなければ。
で、問題は、これ、DBにPostgreSQLを使うように修正されているということ。普通の方法ではうまくいかない気がする…。
始めに方針を決める
最初にどうやって引越しするか、案を作って検討する。これ、「なんとかなるでしょ」って省いて行き当たりばったりで進めたりするけど、事前に検討するという癖をつけないとね。大切な仕事で行き当たりばったりで進めるような人には、頼まないでしょ?
- 動いているのと同じバージョンのWordPressをセットアップする。DBはMySQL。
- PostgreSQLからデータを抜き出して、MySQLに投入する。
- 記事が表示されるようであれば、WordPressをバージョンアップ
- WordPressのバックアップツールを使って丸ごとバックアップし、契約したサービスのWordPressに入れたツールでリストア
問題になりそうなことを考えてみる。
- 古いWordPressは入手できる?
- PostgreSQLからMySQLへの移行はどうする?
これらを解決できそうだったので、引越し決行!
古めのLinuxで環境を作る
古いWordPressだから古いOSがいいだろう、ということで、Ubuntu 12.04を探してきてインストール。インターネットに晒すわけにはいかないので、VMで。Oracle VM VirtualBoxとかVMwareとか、マジ助かる。
古いWordPressはリリース | WordPress.org 日本語にあるので、4.1.1をダウンロード。セットアップは通常の手順どおりMySQLで行う。MySQLも最新版である必要はないので、Ubuntuのパッケージをインストール。
wp-config.phpの設定内容は、Herokuで動いているものと同じにしておく。影響があるのかないのか調査すべきなんだろうけど、ここは手抜き。
Herokuのconfigに設定しているので、管理画面で設定値を表示させて、wp-config.phpに反映させていく。
ここまでで、WordPressのセットアップを行って管理画面が表示されることを確認しておく。
PostgreSQLからMySQLにデータを移す
意外と前例があるものだ。ぐぐったらPostgreSQLのデータをMySQLに移行する - Qiitaという記事が出てきたので、それに従って移行する。スキーマはWordPressインストール時に作られているので、データの移行だけでOK。
PostgreSQLのデータをMySQLに移行する - Qiita
長くアプリケーションをメンテナンスしているうちに、データベースを別の環境に移行する機会もあるかと思います。私が経験したPostgreSQLからMySQLへの移行における手順を示しておきます。 このシステムは下記のような特徴を持ってい...
PostgreSQLのデータをpg_dumpコマンドで取り出す。接続パラメータは
% heroku pg:credentials:url
で表示されるので、それを見ながら% pg_dump --data-only -d dbnameの値 -h hostの値 -U userの値 > db-data-日付.dump
とする。
上記記事にあるPerlスクリプトでデータを変換する。のだが、ファイル名がpublic.xxxとなってしまうので、Shell(bash)上でdataディレクトリに入ってから
% for f in * ; do mv $f ${f#public.}; done
としてpublic.のないファイル名にする。
ファイル名からpublic.がなくなっていることを確認したら、記事のようにmysqlimportでMySQLに取り込む。
ここまでできたら、記事がちゃんと表示されるか、実際にブラウザからアクセスしてみる。WordPressにログインできるか、管理画面に各記事が表示されるかも確認する。
WordPressをバージョンアップ
WordPress 4.1.1 だとあまりにも古いので、WordPressのバックアップツールで移行できるのかどうかわからない。というか、あるバックアップツールを動かそうとしたらエラーになったので、WordPressのバージョンアップが必要だろう。
WordPressを新しくするには、PHPやMySQLのバージョンも関係してくるので、意外と面倒。なので、Ubuntu を新しくしてWordPressが動くように設定する。
最新版まで新しくしていくのが正しいのだろうけど、そのまま使うわけでもないので、PHP 5.6で動くバージョンまで上げる。PHP 7にするのは面倒に感じたので。
バックアップツールでお引越し
WordPressのバックアップツールを使ってお引越し。
管理画面からわずか3ステップでサイトの引っ越しが完了するプラグイン「All-in-One WP Migration」が簡単すぎ!
当ブログでも何度か WordPressサイトの引越し関連の記事を書いてきましたが、今回紹介するブラグイン「All-in-One WP Migration」は管理画面からの操作だけでサイトの引っ越しが完了してとても便利だったのでご紹介します。
WordPressと戯れたいのではない。ブログを書きたいのだ。
「問題が何で」「最終的にはこのようにしたい」「そのため、この手順で作業を行う」と、順序だてて考えて進めていくという訓練にはいいのだが、もともとは「WordPressでブログサイトを作り、記事を書いていく」ことが目的だったわけで、回り道をした感はある。
わずかな出費を惜しまずに、やりたいことをやるための必要経費と割り切ることも重要だろう。これからは素直にWordPressが使えるレンタルサーバを使うことにする。