baserCMS3系から4系への移行方法

2017.02.23


baserCMS4では、baserCMS3からの簡易アップグレードをサポートしていません。
これは、baserCMS4にコンテンツの統合管理機能が搭載され、データベース構造が大幅に変更となっている事に起因しますが、これまで使ってきたbaserCMSが古いままの状態での運用を強いられるのも、今後セキュリティフィックスなどが発生した場合に問題となってきます。

ここでは、最近リリースされたマイグレーションプラグインを使ってのアップグレード作業を説明したいと思います。

アップグレードを行う際の注意

baserCMSを利用する際、プラグインを入れたり、カスタマイズを行っている場合、アップグレードがスムーズにいくとは限りません。 その為、本番運用しているサーバーで直接アップグレード作業を行わず、必ず、テスト用の環境を用意し、そこで動作確認を行ってから本番サーバーへ適用するようにしましょう。

ここで紹介されているマイグレーションプラグインはあくまでアップグレードをサポートするだけのものです。ご利用は自己責任でお願いします。

 

大まかな作業の流れ

  • テスト環境を準備し、baserCMS4の最新版をインストール
  • 既存サイトよりバックアップとテーマ、プラグイン、そしてアップロードファイルを取得し、テスト環境に配置
  • バックアップを、baserCMS4系用に変換
  • テーマとプラグインを、baserCMS4系用に変換
  • バックアップをテスト環境にインポート
  • 動作確認し、問題なければ、本番サイトに配置

     

事前準備

テスト環境を構築する

既存サイトとは別に、アップグレード作業を行う為のテスト環境を準備し、そこに baserCMS4の最新版 をインストールします。
全てのデータは、既存サイトのデータを復元する前提ですので、インストールの際、ログイン情報は、既存サイトのものに合わせる必要はありません。

インストール設定ファイルの値を控える

既存サイトのインストール設定ファイルを確認し、Security.saltSecurity.cipherSeed を控えます。

// app/Config/install.php

Configure::write('Security.salt', 'ここの文字列を控えます。');
Configure::write('Security.cipherSeed', 'ここの文字列を控えます。');

3系のバックアップを取得

管理画面にログインし、[システム設定] → [データメンテナンス] より、バックアップデータをダウンロードします。
バックアップデータを作成する場合、baserCMS 3.0.13 でない場合、プラグインのデータが全てダウンロードできない場合があります。その場合は、以下のパッチをあててください。

テーマ、プラグイン、アップロードファイルの取得

既存サイトの以下のフォルダ内に入っている、テーマ、プラグイン、アップロードファイルを取得して、テスト環境の同階層に配置します。

  • プラグイン: app/Plugin/
  • テーマ: theme/ もしくは、 app/webroot/theme/
  • アップロードファイル: files もしくは、 app/webroot/files

     

テスト環境でのアップグレード作業

マイグレーションプラグインの取得とインストール

テスト環境に、 DBマイグレーターアドオンマイグレーター を取得してインストールしておきます。

DBマイグレーターは、3系用のバックアップファイルを、4系用のバックアップファイルに変換するプラグインです。
また、アドオンマイグレーターは、3系用のテーマやプラグインを4系用に変換するプラグインです。
どちらも、既存サイトのbaserCMSがノーマル状態であれば問題ありませんが、カスタマイズされている場合、完全に変換する事を保障するものではありません。
テーマやプラグインの種類によっては、手作業でのコード調整が必要となります。

バックアップファイルの変換

DBマイグレーターを利用して、3系用のバックアップファイルを4系用のバックアップファイルに変換します。
管理システムの [プラグイン管理] → [DBマイグレータープラグインの管理] より、3系用のバックアップファイルをアップロードすると、数十秒後に、ダウンロードボタンが表示されますので、ダウンロードしておきます。

テーマの変換

アドオンマイグレーターを利用して、3系用のテーマを4系用のテーマに変換します。
管理システムの [プラグイン管理] [アドオンマイグレータープラグインの管理] → [テーママイグレーション] より、変換対象のテーマを選択し、 [実行] ボタンをクリックします。
その後、「手動で作業が必要な事項」を参考に、手作業でテーマの修正を行ないます。

プラグインの変換

アドオンマイグレーターを利用して、3系用のプラグインを4系用のプラグインに変換します。

プラグインについて、配布されているものを利用している場合は、既に、baserマーケットで、4系に対応しているバージョンがリリースされている可能性があります。まずは、baserマーケットを確認しましょう。配布されていなければ、次の手順で、4系用への変換作業を行ないます。

管理システムの [プラグイン管理] [アドオンマイグレータープラグインの管理] → [プラグインマイグレーション] より、変換対象のプラグインを選択し、 [実行] ボタンをクリックします。
その後、「手動で作業が必要な事項」を参考に、手作業でプラグインの修正を行ないます。

インストール設定ファイルの書き換え

既存サイトで取得した、 Security.saltSecurity.cipherSeed の文字列を、テスト環境のインストール設定ファイルの同じ箇所に、埋め込みます。
この作業を行っていない場合、管理システムにログインできなくなりますのでご注意ください。

// app/Config/install.php

Configure::write('Security.salt', 'ここの文字列を置き換えます。');
Configure::write('Security.cipherSeed', 'ここの文字列を置き換えます。');

バックアップのインポート

それではいよいよバックアップファイルのインポートを実行しますので、先ほど4系用に変換してダウンロードしたバックアップファイルを準備します。
管理システムの [システム管理] → [ユーティリティ] → [データメンテナンス] → [データの復元] より、バックアップファイルを選択し、アップロードを実行します。数十秒後、インポートが完了しますので、コンテンツ管理等にデータが取り込まれているか確認します。

プラグインの有効化

バックアップをインポートした直後は全てのプラグインが無効状態となっているので、利用するものを有効化します。 プラグインによっては正常動作しない場合がありますので動作も確認しておきます。

コンテンツ名を見直し

3系でタイトルが空になっていたコンテンツ(固定ページのトップページ等)について、移行後のタイトルが「タイトルを入力してください。」となっていますので、正式なタイトルに変更しておきます。

動作確認

最後に、フロントエンド側も含めて表示や動作を確認します。 問題がなければ、これでテスト環境でのアップグレード作業は完了です。

 

本番サーバーへの移設作業

本番サーバーへの反映作業は、テスト環境で準備した、以下のものを利用します。

  • バックアップファイル(テスト環境でデータを書き換えた場合は新たにバックアップファイルを作成しておきます)
  • baserCMS本体: lib/
  • プラグインフォルダ: app/Pluguin/
  • テーマフォルダ: theme/、もしくは、app/theme/

メンテナンス中の状態にする

lib/ フォルダをアップロードすると自動的に、メンテナンスモードに切り替わりますが、プラグイン等の兼ね合いにより、エラー状態となってしまう場合もありますので、以下のページを参考に、.htaccess を編集してメンテナンスモードに切り替えます。

準備したファイルをサーバーに配置する

FTPソフト等を利用して、準備した以下のフォルダを本番サーバーの同階層にアップロードします。

  • baserCMS本体: lib/
  • プラグインフォルダ: app/Pluguin/
  • テーマフォルダ: theme/、もしくは、app/theme/

baserCMSを本番サーバーで再インストールする

以下のファイルを削除してトップページにアクセスすると、baserCMSのインストールが始まります。
手順に従ってインストールを完了します。

  • app/Config/install.php
  • app/Config/database.php

※ 本番サーバー上のデータベースはこのタイミングで初期化されますのでご注意ください。
※ 不安な場合はデータベースのバックアップを直接取得しておくか、インストール時にDBプレフィックスを、これまで利用していたものとは別のものに変更してください。

インストール設定ファイルの書き換え

テスト環境の時と同様に、Security.saltSecurity.cipherSeed の書き換えを行ないます。

バックアップのインポート

テスト環境と時と同様の手順で、バックアップファイルのインポートを行ないます。

プラグインの有効化

テスト環境と時と同様の手順で利用するプラグインの有効化を行ないます。

動作確認

最後に、フロントエンド側も含めて表示や動作を確認します。
問題がなければ、これで本番サーバーへの移設作業は完了です。
お疲れ様でした!!!

 

アップグレードがうまくいかない場合

ダッシュボードの表示がおかしい場合

baserCMS4系よりダッシュボードの仕組みが変更されています。正常に表示できていないボックスが存在する場合は、以下のファイルが残っている可能性がありますので削除してみてください。

lib/Baser/View/Elements/admin/dashboard/index_dblog_list.php

その他の不具合

その他に、問題が発生している場合、まずは、デバッグモードに切り替えてどのような問題が発生しているか、エラーメッセージ等を確認しましょう。
自分で解決できない場合は、ユーザーズフォーラム や、baserCMSの雑談広場 で質問してみましょう。

お急ぎの場合は、有償となる可能性が高いですが、baserCMSクリエイティブパートナー に相談してみるのも一つの手段です。

江頭 竜二

江頭 竜二  - 株式会社キャッチアップ / 代表取締役

1973年佐賀県生まれ、佐賀育ち。就職後は福岡へ。
27歳で他業種よりIT関連会社へ転職。その後、2007年に独立。
5年間のフリーランスを経験後、2012年1月、株式会社キャッチアップを立ち上げ、Webシステム(CMS系)を中心とした提案、開発に携る。
ユーザビリティ・運営を意識した開発を心がけている。
フリーランス中に参加したコミュニティ活動を通じて、2010年に自身が開発していたCMS「baserCMS」をオープンソースとして公開。
現在は、baserCMSのコミュニティであるbaserCMSユーザー会を運営し、全国的な活動を行なっており、
2014年には、baserCMSを継続的に普及促進、機能改善していく為、特定非営利活動法人ベーサー・ファウンデーションを設立。

この人の関連サイト