2

Zend_Session_Handler_DbTable を使用してセッション データをデータベースに保存しようとしていますが、期限切れのセッションがデータベースから削除されることはありません。

ファイルベースのセッションを削除するcronジョブ(ubuntu)が実行されているのを確認できますが、dbに保存されているセッションでgcがどのように機能するかわかりませんでした。

4

1 に答える 1

6

このクラスには、を呼び出したときに PHP に渡さZend_Session_SaveHandler_DbTableれるガベージ コレクション メソッドが呼び出されます。gcsession_set_save_handlerZend_Session::setSaveHandler()

この関数は、php.ini の値とgcに基づいて定期的に呼び出される必要があります。これらの値が、ある時点でガベージ コレクションが実行されるような値に設定されていることを確認してください。session.gc_probabilitysession.gc_divisor

また、デフォルト関数はこれらの列を使用して、セッション テーブル内のどの行が古く、削除する必要があるかを判断するため、DbTable 保存ハンドラを作成するときにmodifiedColumnおよびオプションを必ず指定してください。lifetimeColumngc

于 2012-09-13T19:31:54.237 に答える