4.0本体バージョンアップ
本番環境でバージョンアップを行う前に、テスト環境で事前検証を必ず行ってください。
この手順では、ec-cube.netからダウンロードしたEC-CUBEのパッケージを利用していることを想定しています。
EC-CUBE本体のコード(app/config/eccube, app/DoctrineMigrations, bin, src, htmlディレクトリ)をカスタマイズしている場合、ファイルが上書きされてしまうため、この手順ではバージョンアップできません。各バージョンでの変更差分を確認して必要な差分を取り込んでください。
EC-CUBE 4.0.6 以前には危険度「高」の脆弱性が含まれています。必ず EC-CUBE 4.0.6-p2 以降のバージョンへバージョンアップをお願いします。
アップデートプラグインを利用したバージョンアップ方法
- 4系のEC-CUBEのバージョンアップには、アップデートプラグインをご利用いただけます。
- アップデートプラグインは、お使いのEC-CUBEの管理画面の「オーナーズストア/プラグインを探す」から「EC-CUBEアップデートプラグイン」で検索を行い、ご利用ください。
アップデートプラグインでバージョンアップを行なった場合は、以下の手順は必要ありません。
作業の流れ
- サイトのバックアップ
- メンテナンスモードを有効にする
- EC-CUBEのソースファイルをバージョンアップしたものに置き換え
- 個別ファイル差し替え
- composer.json/composer.lockの更新
- スキーマ更新/マイグレーション
- プロキシの再生成
- フロントテンプレートファイルの更新
- メンテナンスモードを無効にする
- その他
手順詳細
1. サイトのバックアップ
EC-CUBEのインストールディレクトリ以下をすべてバックアップしてください。
お使いのデータベースも全てバックアップしてください。
2.メンテナンスモードを有効にする(バージョン4.0.1以降)
EC-CUBEの管理画面へアクセスし、「コンテンツ管理」の「メンテナンス管理」から、メンテナンスモードを有効にしてください。
または、EC-CUBEのルートディレクトリに「.maintenance」ファイルを設置することでメンテナンスモードを有効にすることもできます。
[root]
│
├──.maintenance
│
※ メンテナンスモード使用時は、管理画面以外のページにアクセスするとメンテナンス画面が表示されます。
※ この機能は、EC-CUBEのバージョンが「4.0.1」以上でないと使用できません。
3. EC-CUBEのソースファイルをバージョンアップしたものに置き換え
EC-CUBEのソースファイルについて、ディレクトリごとにそれぞれバージョンアップしたソースファイルに置き換えていきます。置き換える対象のディレクトリとなるのは、今回のバージョンアップで変更となったものとなります。
(app/config/eccube
app/DoctrineMigrations
bin
src
html
vendor
など)
vendor
ディレクトリ以外の置き換え
置き換える対象となるディレクトリを削除し、バージョンアップするEC-CUBEのバージョンのディレクトリにそれぞれ置き換えてください。
(対象ディレクトリの上書きではなくディレクトリの中のすべてのファイルを置き換える必要があります。古いファイルが残ってしまうと、予期せぬ動作となる恐れがありますので、必ず置き換える対象となるディレクトリごとにすべてのファイルを置き換えるようにしてください。)
[root]
│
├──[app/config/eccube]
├──[app/DoctrineMigrations]
├──[bin]
├──[src]
├──[html]
│
vendor
ディレクトリの置き換え
vendor
ディレクトリは削除せず、バージョンアップするEC-CUBEのバージョンの vendor
ディレクトリで上書きしてください。
( Web API プラグインなど Symfony bundle を利用の場合に vendor
ディレクトリを完全に削除してしまうと以降の手順でエラーが発生します。ステップ(5) の bin/console eccube:composer:require-already-installed
コマンドで vendor
ディレクトリ内の不要なファイルは削除されます。)
[root]
│
├──[vendor]
│
4. 個別ファイル差し替え
対象となるバージョンごとに、個別のファイル差し替えが必要です。
下記から差し替え対象ファイルを確認して最新のファイルで上書きしてください。
| バージョンアップ対象 | 差し替え対象ファイル |
|———————-|—————————————————————————————————|
| 4.0.0 → 4.0.1 | composer.json
composer.lock
.htaccess
index.php
maintenance.php|
| 4.0.1 → 4.0.2 | composer.json
composer.lock|
| 4.0.2 → 4.0.3 | composer.json
composer.lock
.htaccess
index.php|
| 4.0.3 → 4.0.4 | composer.json
composer.lock
.htaccess
app/Customize/Resource
var/.htaccess|
| 4.0.4 → 4.0.5-p1 | composer.json
composer.lock
.htaccess
robots.txt
app/template/plugin|
| 4.0.5 → 4.0.6 | composer.lock
symfony.lock
.htaccess|
| 4.0.6 → 4.0.6-p1 | .htaccess|
| 4.0.6-p1 → 4.0.6-p2 | -|
- ※ 差し替え対象に、composer.json/composer.lockがある場合は 上書き後、
composer.json/composer.lockの更新の手順
を実施してください。 - ※
4.0.0 → 4.0.2
のように複数バージョンをまたぐバージョンアップを行う場合は、4.0.0 → 4.0.1
→4.0.1 → 4.0.2
のように段階的なバージョンアップを行ってください。 - ※ FTP等でファイルをアップロードするとパーミッションが変更される可能性があります。パーミッションの設定についてを参考にパーミッションの確認をお願いします。
- ※ 公式サイトの脆弱性リストを確認をして該当バージョンで検索し、必要なパッチを適用してください。
上書き後、以下のコマンドでキャッシュの削除を行ってください。
bin/console cache:clear --no-warmup
5. composer.json/composer.lockの更新
この手順は、以下の条件をすべて満たす場合に必要です。そうでなければスキップしてください。
個別ファイル差し替え
の差し替え対象に、composer.json/composer.lockが含まれている- プラグインをインストールしている
以下のコマンドを実行してください。
bin/console eccube:composer:require-already-installed
packagist等の外部ライブラリを独自にインストールしている場合は、再度requireしてください。
例えば、psr/http-messageをインストールしている場合は、以下のコマンドを実行してください。
composer require psr/http-message
6. スキーマ更新/マイグレーション
スキーマ更新およびマイグレーション機能を利用して、データベースのバージョンアップを行います。
以下のコマンドを実行してください。
※ 4.0.0 → 4.0.1, 4.0.1 → 4.0.2, 4.0.4 → 4.0.5-p1, 4.0.5 → 4.0.6, 4.0.6 → 4.0.6-p1, 4.0.6-p1 → 4.0.6-p2 へのアップデートでは、スキーマ更新は必要ありません。
参考:プラグインが無効の状態だと Doctrine SchemaTool でエンティティ拡張が認識されない
スキーマ更新
bin/console doctrine:schema:update --force --dump-sql
マイグレーション
bin/console doctrine:migrations:migrate
7. プロキシの再生成
4.0.3へのバージョンアップのみ、プロキシの再生成が必要です。そうでなければスキップしてください。
プロキシファイルを削除
rm -rf app/proxy/entity/*
autoloadファイルの再生成
composer dump-autoload
プロキシファイルを再生成
bin/console eccube:generate:proxies
キャッシュファイルの再生成
bin/console cache:warmup --env=prod
8. フロントテンプレートファイルの更新
対象となるバージョンごとに、フロントテンプレートファイル(twig)の更新が必要です。
管理画面のコンテンツ管理もしくは店舗設定>メール設定から、該当するページ/ブロック/メールテンプレートを編集してください。
変更対象の差分は、以下リンクからご確認いただくが各バージョンでの変更差分からご確認いただけます。
4.0.0 → 4.0.1
ページ名 | ファイル名 |
---|---|
会員登録(入力ページ) | Contact/index.twig |
会員登録(入力ページ) | Entry/index.twig |
MYページ/会員登録内容変更(入力ページ) | Mypage/change.twig |
MYページ/お届け先追加 | Mypage/delivery_edit.twig |
商品購入 | Shopping/index.twig |
非会員購入情報入力 | Shopping/nonmember.twig |
商品購入/お届け先の追加 | Shopping/shipping_edit.twig |
商品購入/お届け先の複数指定(お届け先の追加) | Shopping/shipping_multiple_edit.twig |
4.0.1 → 4.0.2
ページ名 | ファイル名 |
---|---|
MYページ/購入履歴詳細 | Mypage/history.twig |
注文受付メール | Mail/order.twig |
注文受付メール(HTML) | Mail/order.html.twig |
4.0.2 → 4.0.3
4.0.3 → 4.0.4
4.0.4 → 4.0.5-p1
4.0.5-p1 → 4.0.6、4.0.6 → 4.0.6-p1, 4.0.6-p1 → 4.0.6-p2
フロントテンプレートの更新はありません。
9.メンテナンスモードを無効にする(バージョン4.0.1以降)
EC-CUBEの管理画面へアクセスし、「コンテンツ管理」の「メンテナンス管理」から、メンテナンスモードを無効にしてください。
または、EC-CUBEのルートディレクトリに「.maintenance」ファイルを削除することでメンテナンスモードを無効にすることもできます。
※ この機能は、EC-CUBEのバージョンが「4.0.1」以上でないと使用できません。
10. その他
4.0.0 -> 4.0.1
4.0.1で実装されたメンテナンス機能を利用する場合, .envに以下を記載するか、環境変数として以下の値を定義する必要があります。
ECCUBE_LOCALE=ja
ECCUBE_ADMIN_ROUTE=admin
ECCUBE_TEMPLATE_CODE=default
※設定値は記載例です。環境にあわせて変更してください。
4.0.1 -> 4.0.2
- faviconパスの変更を利用する場合, 差分を適用後、ファイル管理からfaviconファイルをアップロードすることでfaviconの変更を行うことができます。
- CSS管理 を利用する場合, 差分の適用が必要です。
- Javascript管理を利用する場合, 差分の適用が必要です。
4.0.2 -> 4.0.3
- 軽減税率制度に関する対応を利用する場合, 差分の適用が必要です。 ※合わせて注意点もご確認下さい。
- PDFのロゴ画像変更 を利用する場合, 差分の適用が必要です。
- 複数ファイルのアップロードを利用する場合, 差分の適用が必要です。
EC-CUBEのバージョンアップ手順は以上です。
各バージョンでの変更差分
バージョンごとの詳細な変更差分は、以下のリンク先で確認することができます。
バージョン | 差分ページ |
---|---|
4.0.0 → 4.0.1 | https://github.com/EC-CUBE/ec-cube/compare/4.0.0…4.0.1 |
4.0.1 → 4.0.2 | https://github.com/EC-CUBE/ec-cube/compare/4.0.1…4.0.2 |
4.0.2 → 4.0.3 | https://github.com/EC-CUBE/ec-cube/compare/4.0.2…4.0.3 |
4.0.3 → 4.0.4 | https://github.com/EC-CUBE/ec-cube/compare/4.0.3…4.0.4 |
4.0.4 → 4.0.5-p1 | https://github.com/EC-CUBE/ec-cube/compare/4.0.4…4.0.5-p1 |
4.0.5-p1 → 4.0.6 | https://github.com/EC-CUBE/ec-cube/compare/4.0.5-p1…4.0.6 |
4.0.6 → 4.0.6-p1 | https://github.com/EC-CUBE/ec-cube/compare/4.0.6…4.0.6-p1 |
4.0.6-p1 → 4.0.6-p2 | https://github.com/EC-CUBE/ec-cube/compare/4.0.6-p1…4.0.6-p2 |