EC-CUBE内のファイルの操作をFTP等で行っている時セッションに関するエラー(Warning)が出る場合があります。

Warning: SessionHandler::read(): Session data file is not created by your uidについてご紹介致します。

このエラーはセッションファイルの所有者が変わってしまったために起こる警告です。セッションファイルなんてさわっていないと思うはずなのですが、EC-CUBEでは実はセッション維持のためのファイルをapp/cache/eccube/sessionというディレクトリに保存しています。

なのでappディレクトリの所有者を再帰的に変更するとこのWarningが発生します。解消方法として、開発環境であれば中のファイルを全て削除してしまって問題ないでしょう。

cacheディレクトリにセッションファイルを保管るのは若干違和感があるという方は、保管場所として別の場所を指定しておいたほうが良いかもしれません。

あるいはWordPressがそうであるように、MySQLなどデータベースに保管することも当然検討すべきかと思います。セッションファイルを消したりエラーになると全ユーザーのカートの情報や注文しようとしている内容が全て消えてしまうということも起こるのでご注意ください。

関連するカスタマイズ

新しくテーブルを作ってエンティティと関連づける方法... 今回は非常に要望が多かった新しいテーブルを作ってエンティティとしてデータ取得をできるようにする方法をご紹介します。 この方法は3系のもので、まもなくリリースされるEC-CUBE4系では利用できませんのでご注意ください。 データベースの作成 ドクトリン定義ファイルの作成(dcm....
商品一覧のページネーションに「最初へ」「最後へ」を表示する方法... 商品一覧ページのページネーションはProduct/list.twigを見るとpagination.twigをインクルードすることで表示されています。 pagination.twigをのぞいて見ると「最後へ」の部分は次のようなコードが書かれています。 このリンクを表示するにはconfi...
ドクトリンで用いられるエンティティとレポジトリとは?... EC-CUBE3やEC-CUBE4で開発を行なっていると必ず耳にするのがドクトリンやエンティティ、レポジトリといったデータベース周りの用語です。 ECサイトはデータベースと密接に関係しているため、これらを用いずにEC-CUBEの開発を行うことは不可能です。 エンティティとレポジトリとは? ...
Composer is not installed. と表示される原因と解決方法... 新しくインストールしようとしてGitからソースを持ってきた時に画面上にComposer is not installed. だけ表示される場合がよくあります。 vendor配下のライブラリはgitignoreするのが一般的なので、git cloneしたソースに/vendor/ディレクトリが存在...