WordPressをHerokuに移行する


これまでこのブログは激安レンタルサーバーに乗っけていたのですが、度重なるメンテナンスや、レスポンスが10s以上かかるという惨状にいい加減うんざりしたので、今回Herokuの無料インスタンスにブログをまるっと移行してみました。

WordPress Heroku

WordPressのソースをそのまま上げると色々と大変なので、WordPress HerokuというWordPressをHeroku向けにカスタマイズしたこちらを使ってみました。Heroku向けにpostgresを使ってくれたりしています。

リポジトリをcloneしてREADMEの手順に従うと、セットアップは割と簡単にできました。

プラグインやデザインの追加

Herokuを使うときに一番念頭に置かなければならないのは、gitリポジトリ上にないファイルはdynoの再起動時に消えてしまうというところです。なのでプラグインやデザインの追加は管理画面UIから行うことはできません。

デザインテンプレートの場合、ソースをダウンロードした上で解凍したフォルダをローカルレポジトリ内のwp-content/themesに、プラグインの場合はwp-content/pluginsに配置した上で、それらのファイルをコミットして、Herokuにpushします。

デプロイが完了すると、管理画面に追加したプラグインやデザインが表示されるので、適宜設定を行えば新しいプラグインやデザインが使えるようになります。

 画像のアップロード

前述の通り、リポジトリに無いファイルは消えてしまうので、WordPress HerokuはS3のプラグインでこれを解決しています。関連プラグインはすでにバンドルされています。

管理画面のPlugin一覧から、Amazon S3 and CloudFrontとAmazon Web Servicesを有効にします。するとAWSというメニューが現れるので、そこから使いたいバケットを選択すれば準備完了です。

あとは通常どおり画像をアップロードすれば、画像URLが自動的にS3のURLになるので、消える心配がありません。

旧データの移行

旧サーバーからのデータの移行は、Tools以下にあるImporterとExporterを使いましたが、一部データがきちんとインポートできなかったりしたので、多分もっといい方法があると思います。

CNAMEでRootドメインを指定

これまでルートドメインのchikathreesix.comでブログをやってきたので、wwwなどのサブドメインにはしたくありませんでした。しかしHerokuでカスタムドメインを使う際、Aレコードは利用できずCNAMEしか利用できません。残念なことにCNAME でRootドメインの指定はサポートしていないサービスが殆どです。

しかしHerokuのチュートリアルをみてCloudflareを試してみたら、無料かつ簡単にセットアップできました。今の所うまくいっているので、オススメです。

 

FTP接続を要求されたり、怪しげなFTPのウェブインターフェースを使わされるレンタルサーバーにはうんざりしてましたし、WordPressから直接ソースコードをいじる作業には本当に吐き気がしていたので、すべてgitで管理、且つクラウドでスケールも可能という状況になったので、満足してます。

また問題など出てきたら追記します。


Leave a Reply