概要
先日、OpenBSD 6.4 に EC-CUBE 4.0.0 をインストールしました。
そして、その後に 4.0.1 へアップデートしました。
それぞれの詳細はシリーズ記事に書いています。
今回はさらに 4.0.1 から現在の最新版 4.0.2 へのアップデートを実施しました。
アップデートによって、管理画面に対する、ファイル管理機能の拡張や CSS / JavaScript の管理機能の追加などが行われます。
手順は、公式ドキュメント の 「EC-CUBE本体のバージョンアップ」 に従いました。
EC-CUBE のアップデートにおいて、OpenBSD に特有なのは、以下の 2 点です。
- PHP のコマンドを実行する時は
php
の代わりにphp-7.2
を使用する。 - パッケージ内に複数の
.htaccess
が存在するが、そのどこかに更新がある場合、必要に応じて差分をhttpd.conf
/php.ini
(php-72.ini
) で吸収する。
ただし後者は今回の 4.0.2 へのアップデートでは関係ありませんでした。
環境
注意点
EC-CUBE のカスタマイズを行っている場合は、注意が必要です。
アップデート手順通りにファイルの上書きを行うと、カスタマイズ内容が消えてしまうことがあります。
EC-CUBE本体のコード(app/config/eccube, app/DoctrineMigrations, bin, src, htmlディレクトリ)をカスタマイズしている場合、ファイルが上書きされてしまうため、この手順ではバージョンアップできません。
各バージョンでの変更差分を確認して必要な差分を取り込んでください。
また 4.0.0 から 4.0.2 にアップデートする場合、4.0.0 -> 4.0.1 + 4.0.1 -> 4.0.2 と、2 段階に分けて行う必要があります。
4.0.0 -> 4.0.1 へアップデートする流れについては、以下の記事に書いています:
EC-CUBE 4.0.0 -> 4.0.1 へのアップデート @ OpenBSD
nabbisen ・ Dec 26 '18
アップデートの手順
前提
更新対象のルートディレクトリの名前を eccube
とします。
まず現状のバックアップを取得します。
次に最新パッケージをダウンロード & 解凍します。
最新パッケージのファイルをもとに、アップデートを行って行きます。
全体として、以下のような階層関係になります:
.
|
+-- eccube * アップデート対象
| +-- app
| +-- bin
| +-- ...
+-- eccube-4.0.2 * 最新パッケージ
| +-- app
| +-- bin
| +-- ...
+-- %backup-dir% * バックアップ
+-- database-backup.sql
+-- eccube-4.0.1
手順 1: メンテナンスモードを有効にする
管理画面の [コンテンツ管理] - [メンテナンス管理] メニューから行えます:
* 備考: ルートディレクトリ eccube
に空ファイル .maintenance
を一時的に作成することでも、メンテナンスモードの有効化は行えます。
なお、公式サイトでは、以下の「バックアップを取得する」を先に行う手順になっています。
今回は、ユーザー操作を完全に防いでからデータ退避を行いたかったため、先にメンテナンスモードを有効にする順番にしています。
(順番はサイト運営方針を鑑みて決めるのが良いと思います。)
手順 2: バックアップを取得する
#1. バックアップディレクトリを作成する
$ mkdir %backup-dir%
%backup-dir% は、実際には、以下のように命名しました:
eccube4.0.1-`date '+%Y%m%d'`
#2. データベースのバックアップ
MariaDB の mysqldump
コマンドで バックアップを取得できます:
$ mysqldump -u %user% -p %database% > %backup-dir%/database-backup.sql
#3. ソースファイルのバックアップ
パッケージのルートディレクトリからファイルをすべてコピーします。
$ cp -rp eccube %backup-dir%/eccube-4.0.1
#4. バックアップの完了
以上でバックアップは完了です。
ヒューマンエラー防止のための最終確認として、作成したものをチェックしておくと良いと思います。
$ ls -l %backup-dir%
手順 3: アップデートを行う
#1. 公式サイトのダウンロードページ から最新の EC-CUBE パッケージを取得する
$ wget http://downloads.ec-cube.net/src/eccube-4.0.2.zip
$ unzip eccube-4.0.2.zip
#2. 共通ファイルを更新する
更新バージョンに関わらず常に更新対象になるファイル群です。
$ cp -r eccube-4.0.2/app/config/eccube eccube/app/config
$ cp -r eccube-4.0.2/app/DoctrineMigrations eccube/app
$ cp -r eccube-4.0.2/bin eccube/
$ cp -r eccube-4.0.2/src eccube/
$ cp -r eccube-4.0.2/html eccube/
$ cp -r eccube-4.0.2/vendor eccube/
#3. 個別ファイルを更新する
更新バージョンごとに追加で更新を行う必要があるファイルが存在する場合があります。
4.0.1 -> 4.0.2 への更新の場合、以下の通りです:
$ cp eccube-4.0.2/composer.json eccube/
$ cp eccube-4.0.2/composer.lock eccube/
ファイル上書き後に、アプリケーションのキャッシュをクリアします:
$ cd eccube
$ php-7.2 bin/console cache:clear --no-warmup
$ cd ../
なお、繰り返しになりますが、複数の EC-CUBE のバージョンをまたぐ場合は、注意が必要です:
4.0.0 → 4.0.2 のように複数バージョンをまたぐバージョンアップを行う場合は、4.0.0 → 4.0.1→4.0.1 → 4.0.2 のように段階的なバージョンアップを行ってください。
#4. composer.json
/ composer.lock
の更新
以下の条件をすべて満たす場合に、必要な手順です(不要な場合、この手順はスキップします):
- 個別ファイル差し替えの差し替え対象に、
composer.json
/composer.lock
が含まれている - プラグインをインストールしている
Composer の composer.json
/ composer.lock
を更新します:
$ cd eccube
$ php-7.2 bin/console eccube:composer:require-already-installed
$ cd ../
#5. スキーマ更新/マイグレーション
今回は、本項は不要です:
4.0.1 → 4.0.2 へのアップデートでは、スキーマ更新は必要ありません。
#6. テンプレートファイルの更新
ファイルの上書き もしくは 差分 の取込み を行います。
4.0.1 -> 4.0.2 の更新対象は以下の通りです。
ページ名 | ファイル名 |
---|---|
MYページ/購入履歴詳細 | Mypage/history.twig |
注文受付メール | Mail/order.twig |
注文受付メール(HTML) | Mail/order.html.twig |
#8. .htaccess
の変更内容の取込み(OpenBSD 特有)
今回は、変更が無いため、本項は不要です。
#9. アップデートの完了
PHP-FPM / httpd を再起動します:
# rcctl restart {php72_fpm,httpd}
手順 4: メンテナンスモードを無効にする
管理画面の [コンテンツ管理] - [メンテナンス管理] メニューから行います:
* 備考: メンテナンスモードの解除は、EC-CUBE のルートディレクトリの .maintenance
ファイルを削除することでも行なえます。
以上です。
お読み頂きどうもありがとうございました。
Top comments (0)