baserCMS4 バックアップ&リストア③(リストア[別環境])
別環境へのリストア
リストアの操作は、障害回復の他に、下記の様な場合も行います。
① 別サーバーへの移行[引っ越し](ハードウェア更新、別のレンタルサーバーに切り替える、など)
② 本番のシステムと同等のテスト用システムの構築
ここでは、
移行元に「http://192.168.100.1/bc41」のシステム
※【baserCMS4】バックアップ&リストア①(バックアップ)にてバックアップ取得済み
移行先に「http://192.168.100.2/tst1」のシステム(今回のテスト用に、別サーバー・別ディレクトリで構築)
※テスト用システムは、下記で構築したものと同等で、
「baserCMS」をアップロードする前のディレクトリ作成段階まで構築したものとなります。
【baserCMS4】テスト環境の構築①(準備)
【baserCMS4】テスト環境の構築②(インストール)-「baserCMS」のアップロードの準備
※テスト用システムのサーバーIP・格納ディレクトリは、下記になります。
IPアドレス:192.168.100.2
ディレクトリ:/tst1/
を用い、サーバー移行のテストを行ってみます。
移行元の停止で 上記「リストアの操作①」、移行元の存続で 上記「リストアの操作②」となります。
レンタルサーバー等の公開サーバーでは、ドメイン・DNSの移管なども必要になりますが、今回は、ローカルサーバーという事で省きます。
テスト用システムの環境は、本番環境と同等とします。
Ubuntu Server バージョン 22.04.2 LTS
Apache 2.4.52
MySQL 8.0.33
PHP 8.1.2
vsftpd 3.0.5
FFFTP バージョン 5.8 (64bit)
phpMyAdmin バージョン 5.2.1
baserCMS バージョン 4.7.7
移行元と移行先の「MySQL」ですが、バージョンを合わせないと上手く行きませんでした。
(5.6 ⇒ 8.0 は当然とは思いますが、5.6 ⇒ 5.7 もNGでした。)
バージョン対応の一手間が要りそうです。
その他のソフトのバージョンの違いは、問題が無いよう?ですが、
今回は目的を「移行操作の基本は何か」の確認とし、バージョン対応が入るとややこしくなるので省き、同一環境としております。
(実は、バージョン対応の一手間が何なのか、現在不明「調査中」という事もありますが...)
レンタルサーバーの引っ越しなどは、バージョン対応など、色々考える必要がありそうです。
準備
移行先は移行元と、IPアドレス、ディレクトリ名が変わりますので、
バックアップしたファイルの内容の、移行先に合わせた書き換え対応が必要になります。
書き換え対応ですが、バックアップファイルには手を加えず、移行用にコピーを作成して行います。
コピー対象は、「C:¥work¥Backup」フォルダ内の、「bc41」フォルダと「bc41_bc_db.sql」ファイルで、
ここでは、それぞれ下記の様に、名称変更でコピーします。
フォルダ:bc41 ⇒ tst1
ファイル:bc41_bc_db.sql ⇒ tst1_bc_db.sql
コピー後の、書き換え対象ファイルは下記となります。
① C:¥work¥Backup¥tst1¥app¥Config¥install.php
② C:¥work¥Backup¥tst1¥app¥Config¥database.php
③ C:¥work¥Backup¥tst1_bc_db.sql
④ C:¥work¥Backup¥tst1¥.htaccess
.htaccess ファイルは、/var/www/html/tst1/app ディレクトリ下にもあります。
こちらは、気にしなくても良いのかな?と思っています。
① C:¥work¥@Backup¥tst1¥app¥Config¥install.php
baserCMSのインストール時に設定される基本情報ファイルです。
サーバーのURLが設定されていますので、ここを書き換えます。
Configure::write('BcEnv.siteUrl', 'http://192.168.100.1/bc41/'); ←6行目(「http://192.168.100.2/tst1/」に書き換え)
② C:¥work¥@Backup¥tst1¥app¥Config¥database.php
baserCMSのインストール時に設定した、MySQLへのアクセス定義ファイルです。
データベースログインの情報を必要に応じ、書き換えます。
'host' => 'localhost', ←9行目 ホスト名(ここでは書き換え無し)
'login' => 'bc_user', ←11行目 ログインユーザー名(ここでは書き換え無し)
'password' => 'pass0001', ←12行目 ログインパスワード(ここでは書き換え無し)
'database' => 'bc_db', ←13行目 データベース名(ここでは書き換え無し)
'prefix' => 'bc41_', ←15行目 プレフィックス(「tst1_」に書き換え)
※「public $test = array( ・・・」の記述の方は、何に使用されるか???ですが、念の為、書き換えます。
③ C:¥work¥@Backup¥tst1_bc_db.sql
MySQLのテーブル定義・データのSQLファイルです。
下記に付いて書き換えを行います。
● データベースのプレフィックス「bc41_」(「tst1_」に書き換え)
● ディレクトリ名称「/bc41/」(「/tst1/」に書き換え)
● 内部リンクのURL「http://192.168.100.1/」(「http://192.168.100.2/」に書き換え)
書き換え個所は多数あります。
テキスト形式のファイルですので、テキストエディタ(メモ帳)等の「一括置換」で行うと良いと思います。
④ C:¥work¥@Backup¥tst1¥.htaccess
Webサーバーの基本的な動作を、ディレクトリ単位で制御するためのファイルです。
ここでの書き換えは有りません。
レンタルサーバー等では、独自の設定(下の画像の記述に追記など)がなされており、見直しが必要になる場合があります。
リストア操作
準備(ファイルの書き換え)が終わりましたら、リストアを行います。
リストアの操作は、「baserCMS4 バックアップ&リストア②(リストア[同一環境])」-「リストア操作」と同等です。
※「192.168.100.1」⇒「192.168.100.2」、「bc41」⇒「tst1」に読み替えます。
まず、要注意ですが、アップロードの前準備として、キャッシュ関連のフォルダの削除を忘れずに行います。
キャッシュ関連のファイルは、移行元のサーバーの情報が入っていますので、残っていると、移行先での動作不具合の元となります。
C:¥work¥Backup¥tst1¥app¥tmp 内のフォルダ「cache」「logs」「schemas」「sessions」を削除します。
次に、「tst1フォルダ」のアップロードを行います。
「FFFTP」にて、アップロードします。
元 : c:¥work¥Backup¥tst1 (コピー修正したフォルダの中)
先 : /var/www/html/tst1 (作成したディレクトリの中)
最後に、「tst1_bc_db.sql ファイル」のインポートを行います。
「phpMyAdmin」にて、インポートします。
「ファイルの選択」で、「c:¥work¥Backup」フォルダを開き、ファイル「tst1_bc_db.sql」を選択
「インポート」ボタンまで下方へスクロール
「インポート」ボタンをマウス左クリック
プレフィックス「tst1_」のテーブルがインポートされます。
最後に【忘れずに!】
baserCMSの「固定ページ」ですが、固定ページ情報編集画面から「保存」の操作を行うと、
内容(文字とリンクの情報)をMySQLデータベースに保存すると同時に、/app/View/Pages ディレクトリに、表示用phpファイルの書出しを行っているとのことです。
Webの閲覧で、固定ページを表示する時は、データベースの内容は使用せず、/app/View/Pages内のphpファイルを使用して表示するようです。
その為、今回のリストア手順では、MySQLデータベースの内容は書き換えを行いましたが、/app/View/Pages内のphpファイルは書き換えを行っておりませんので、このままでは、/app/View/Pages内の古い情報のphpファイルが表示されてしまい、不具合が発生します。
この解消に、以下の操作が必要になります。
管理画面から、
「設定」-「ユーティリティ」-「ユーティリティトップ」画面を表示し、
「固定ページテンプレート」項目の、「固定ページテンプレート書出」ボタンをマウス左クリック
これで、/app/View/Pages内のphpファイルが、MySQLデータベースの内容で、更新されます。
移行先「http://192.168.100.2/tst1」の管理画面にログインします。
「設定」-「ユーティリティ」をマウス左クリックで選択
「ユーティリティトップ」画面を表示
「固定ページテンプレート」項目まで進め
「固定ページテンプレート」項目の、「固定ページテンプレート書出」ボタンをマウス左クリック
書出し確認のメッセージを表示
「OK」をマウス左クリック
メッセージを表示し、終了
確認
ブラウザにて、http://192.168.100.2/tst1 にアクセスします。
各ページの、画像や内部リンクに異常がないか確認します。
リストア操作は以上です。
作成 : 2023/08/31
環境 : OS Windows 11 Pro バージョン 22H2 「Hyper-V使用」
Ubuntu Server バージョン 22.04.2 LTS
Apache 2.4.52
MySQL 8.0.33
PHP 8.1.2
vsftpd 3.0.5
FFFTP バージョン 5.8 (64bit)
phpMyAdmin バージョン 5.2.1
baserCMS バージョン 4.7.7
