お世話になっております。株式会社Joolenの白井です。
いつもOSS開発部にてEC-CUBEのカスタマイズ開発とかをやっています。ときどき本体へのコントリビュ〜ションなどもやっています(もうちょっと増やしたいです)。
そんなに派手なことはやっておりませんので、ちまちました設定の話をします。
Blog
ブログ
お世話になっております。株式会社Joolenの白井です。
いつもOSS開発部にてEC-CUBEのカスタマイズ開発とかをやっています。ときどき本体へのコントリビュ〜ションなどもやっています(もうちょっと増やしたいです)。
そんなに派手なことはやっておりませんので、ちまちました設定の話をします。
![]() |
![]() |
![]() |
![]() |
![]() |
※バナー画像はお友達紹介キャンペーンの一例です。
※バナー画像はお友達紹介キャンペーンの一例です。
※設定>店舗設定>基本設定 の ポイント機能を有効にする必要があります。
※バナー画像はお友達紹介キャンペーンの一例です。
※バナー画像はお友達紹介キャンペーンの一例です。
eccube.CRITICAL: RuntimeException: Failed to start the session (uncaught exception) at /var/www/eccube/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php line 149 {“exception”:”[object] (RuntimeException(code: 0): Failed to start the session at /var/www/eccube/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php:149)”} []
システムエラー画面になってシステムログにはこんなエラーがでていた。
apacheエラーログは以下の通り。
PHP Warning: session_start(): Failed to decode session object. Session has been destroyed in /var/www/eccube/vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php on line 148
セッションオブジェクトをデコードできないってことなので、とりあえずセッションのデータを見てみることに。
結論から言うと、セッションデータがでかすぎて欠落した値がDBに保存されていたことが原因。
eccube3.0.8だったのでセッションはデフォルトでDBに保存される。(3.0.10ではファイルに変更されている模様)
解決策としては
が考えられるので今回は1で対応。
因に、my.cnfに「sql_mode=STRICT_TRANS_TABLES」を設定するとblobのままでも欠落した値が挿入されることは無く、
(恐らく値が更新されないので)上記エラーは起きなかった。
そもそも、セッションにCustomerエンティティとそこから紐づくエンティティが保存されるらしく、
それを知らずにリレーションしまくると大変なことになりそう。
(今回はカスタマイズでいろいろリレーションしていた)
紐づくエンティティーでも保存される物とされない物があり良くわからんのですが・・・
引き続き調査は続く。