みなさんこんにちは。
CentOS7にインストールしたEC-CUBE3.xのアップデート方法をメモしておきますね。
WordPressのように2クリックくらいでアップデートできたらいいんですけど、そうはいきませんので、ちょっと面倒ですけど、確実な方法でアップデートしてみたいと思います。
Windowsからサーバにログインする場合は、WinSCPなどを使ってファイル単位でコピーできると便利ですね。
まず、EC-CUBEのサイトから、最新版のzipファイルをローカルのWindowsマシンにダウンロードします。更新用とかではなく、普通のインストール用のやつしかないようですね。そしてそれを解凍しておきます。
次に、特定のファイルを上書きするんです。
上書きするファイル、ディレクトリは、以下の通りです。
- src/ (ディレクトリ)
- html/ (ディレクトリ)
- vendor/ (ディレクトリ)
- app/console (ファイル)
- cli-config.php (ルートにあるファイル)
- composer.json(ルートにあるファイル)
- composer.lock(ルートにあるファイル)
- eccube_install.sh(ルートにあるファイル)
これらをWinSCPなどで上書きして下さい。手順は、まず、念のため、src、html、vendorディレクトリは、それぞれsrc_org、html_org、vendor_orgなどといったディレクトリ名で同じ内容のコピーを取っておきます。
そのあと、_orgの付かないディレクトリを上書きするんです。
※上書きではなく、オリジナルのディレクトリの名前を変更し、新規にこれらディレクトリ内容をzipファイルからコピーする場合は、気をつけなければなりません。画像やテーマなど、アップロードしたユーザーデータが消えてしまうことになるからです。
- src/Eccube/Resource/template
- html/upload
- html/user_data
などを書き戻してください。他にもチェック漏れがあるかも知れませんので、名前を変更した元のオリジナルディレクトリは、決して消さずに残しておいて下さい。絶対です。
ファイルの上書きやコピーが済んだら、次に、念のため、パーミッション及び所有者を設定しなおしましょう。
# chown -R apache:apache /var/www/eccube # chmod -R 755 /var/www/eccube
そして、html/.htaccessの設定も上書きされた場合は元に戻さなければなりません。
# vim /var/www/eccube/html/.htaccess order deny,allow allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /shop/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpg|css|ico|js)$ [NC] RewriteRule ^(.*)$ index.php [QSA,L] </IfModule>
RewriteBaseを加えます。ここで指定するパスは、ECCUBEをインストールした絶対ディレクトリではなく、また相対ディレクトリでもなく、エイリアスで指定したURLのディレクトリ名を入力するのです。仮想フォルダのような機能なので、インストールしたディレクトリを入れても、管理画面は表示されません。
そして最後に、ブラウザで
http://インストール先/install.php/migration
にアクセスし、マイグレーションを実行して終わりです。設定→システム情報設定→システム情報で、きちんとアップデートできていることを確認して下さい。
※アップデートすると、動かなくなるプラグインがあるので注意してください。プラグインの詳細で対応バージョンが書いてあります。これの対応外のバージョンにアップデートすると、プラグインが動作しません。0.01だから問題ない・・・と思ってたら大間違い! 認証していないと動かない仕組みになっているようです・・・。
なので、アップデートする際は、プラグインの対応が大丈夫か、十分に確認後、行って下さい。