PHP5.5で一部動かないEC-CUBEを動かす修正内容

eccube ECCUBE

EC-CUBE2.12以前のバージョンPHP5.5以上だと正しく動作しません

動作しないページ一覧(把握しているものなので他にもあるかもしれません)
・オーナーズストア>モジュール管理
・オーナーズストア>プラグイン管理
・システム設定>バックアップ管理
・デザイン管理>テンプレート追加
・コンテンツ管理>ファイル管理

修正方法

http://download.pear.php.net/package/Archive_Tar-1.3.11.tgz
ここからPEAR::Archive_Tarをダウンロード
tgzを解凍できるもので解凍
解凍されたディレクトリ内にあるTar.phpでEC-CUBE内のTar.php(data/module/Archive/Tar.php)を上書き
これで修正完了です

わ、わかりにくいですが、つまりはPEAR::Archive_Tarを最新版にすれば解決するってことです
間違ってpearコマンドを叩いても直りませんので要注意です

エラー内容

プラグインの場合、 ※プラグインが解凍できません とエラーが表示されインストールやアップデートすることが出来ません

ログにはwarningが出るようです
~~~
Warning(E_WARNING): file_exists() expects parameter 1 to be a valid path, string given on [/path/to/eccube/data/module/Archive/Tar.php(1609)] from
~~~

最初warningで動かなくなる理由がよくわからなかったですがPHP5.5が原因なのかなーと調べてたら見つけました
Bug #19746 :: Broken with PHP 5.5

他にもあるかも?

PHP5.5で環境作ってざっと調べた時にはなんとなく動いていたんで大きな問題はなさそうです
ちょこっとしかないテストのある範囲もPHP5.5で問題なく動いています
https://travis-ci.org/nobuhiko/EC-CUBE/jobs/9164689

今後の課題としてはテストを増やす!これしかないですね・・・
あとはプロジェクト内にあるPEARをどうやって更新するのが最適なのかがよくわからず
composerとか使えばいい感じにできるんですかね??
EC-CUBEは5.2対応しないといけないのでムリでした。。。

なお、この修正は2.13.0から取り込まれております
チェンジセット 22964 – EC-CUBE Trac

コメント

タイトルとURLをコピーしました