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が使えるレンタルサーバを使うことにする。



楽天で探す
楽天市場
にほんブログ村 IT技術ブログへ

人気の投稿

ブログ アーカイブ

自己紹介

SREチームがなくなって、開発・運用のメンバーといっしょのDevOpsチームになりました。

アフィリエイト

  • 当ブログ「Hiroaki's blog」は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。
  • 当ブログでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。
  • アクセストレードアフィリエイトプログラムに参加しています。
  • A8.netアフィリエイトプログラムに参加しています。
  • バリューコマースアフィリエイトプログラムに参加しています。
  • もしもアフィリエイトプログラムに参加しています。

プライバシーポリシー

当サイトにアクセスされる場合、IPアドレスなどの情報または閲覧状況に関するデータが機械的に生成され、場合によっては個人情報と関連付けられる可能性があります。プライバシー保護に関する適用法に準じて、これらの通信および閲覧に関するデータを収集、処理、および利用することがあります。
当サイトにアクセスされる場合、非個人情報(ブラウザの種類、OSの種類、ドメイン名、訪問数、平均滞在時間、ページ・ビューなど個人を特定できない情報)が自動収集される場合があります。当サイトのパフォーマンスやコンテンツを改善する目的で、これらの情報を利用する場合があります。
アフィリエイトでは成果を把握するためにcookie等を利用しています。それ以外の目的で使用されることはありません。詳しくは各社のページにて確認してください。
本サイトに掲載する情報に関しては、正しいものを提供することを務めていますが、掲載内容から、いかなる損失や損害などの被害が発生しても、当ブログでは責任を追いかねます。

QooQ