HerokuのWordPressサイトをお引越し

2020/09/11

blog heroku ブログ

t f B! P L
記事内に広告が含まれています。

昔、ただでWordPressを動かしたくてHerokuで環境を作ったのだが、腹をくくってWordPressが使えるサービスを契約したので、お引越し。

Herokuを選ぶ時点でそれなりに知識があるのだろうということで、細かいことは端折って短めに。

クラウド・アプリケーション・プラットフォーム | Heroku

Heroku は、アプリケーションの開発から実行、運用までのすべてをクラウドで完結できる PaaS(サービスとしてのプラットフォーム)です。

WordPressのバージョンが古くて危険

Herokuで動かすために使ったのは、これ。
GitHub - mhoofman/wordpress-heroku: Template project for deploying WordPress to Heroku
バージョン4.xは今となってはちょっと。最新バージョン…はいろいろあるにしても、それに近いバージョンに上げなければ。

で、問題は、これ、DBにPostgreSQLを使うように修正されているということ。普通の方法ではうまくいかない気がする…。

始めに方針を決める

最初にどうやって引越しするか、案を作って検討する。これ、「なんとかなるでしょ」って省いて行き当たりばったりで進めたりするけど、事前に検討するという癖をつけないとね。大切な仕事で行き当たりばったりで進めるような人には、頼まないでしょ?

  1. 動いているのと同じバージョンのWordPressをセットアップする。DBはMySQL。
  2. PostgreSQLからデータを抜き出して、MySQLに投入する。
  3. 記事が表示されるようであれば、WordPressをバージョンアップ
  4. 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」は管理画面からの操作だけでサイトの引っ越しが完了してとても便利だったのでご紹介します。

記事の通り。引越し元がPHP 5.6、引越し先がPHP 7だったため、インポート時に警告が出たけど問題なかった。

WordPressと戯れたいのではない。ブログを書きたいのだ。

「問題が何で」「最終的にはこのようにしたい」「そのため、この手順で作業を行う」と、順序だてて考えて進めていくという訓練にはいいのだが、もともとは「WordPressでブログサイトを作り、記事を書いていく」ことが目的だったわけで、回り道をした感はある。
わずかな出費を惜しまずに、やりたいことをやるための必要経費と割り切ることも重要だろう。これからは素直にWordPressが使えるレンタルサーバを使うことにする。


人気の投稿

ブログ アーカイブ

自己紹介

ストックオプションを半分しか行使していなかったけど、パワハラをなぁなぁで済まそうとする会社から転職。アーリーリタイアを目指し、自分で稼ぐ術を模索中。

改正電気通信事業法に関する表記

・掲載内容

当サイトでは成果報酬型広告/クリック型広告の効果測定のため、利用者の方のアクセス情報を外部事業者に送信しております。
当該の情報は個人を特定する情報ではございません。また当該の情報が目的外利用される事は一切御座いません。

1.送信される情報の内容
  • 広告の表示日時
  • 広告のクリック日時
  • 広告の計測に必要なクッキー情報
  • 広告表示時及び広告クリック時のIPアドレス
  • 広告表示時及び広告クリック時に使用されたインターネット端末およびインターネットブラウザの種類
2.送信先となる事業者の氏名又は名称
  • グーグル合同会社
  • 楽天グループ株式会社
  • アマゾンジャパン合同会社
  • ヤフー株式会社
  • 株式会社ファンコミュニケーションズ
  • 株式会社もしも
3.利用目的

成果報酬型広告/クリック型広告の効果測定および不正防止のため

QooQ