2012-05-10 10 views
0

私は、セッションファイルを長期間(例えば、木曜日、1ヶ月...)滞在することを絶対に中継するPHPアプリケーションを作成しました。PHPカスタムセッションパス:私の意志に反してセッションファイルを削除するメカニズムがありますか?

私のPHPアプリケーションは共有ホスティング環境で動作するため、必要なセッションファイルを含むアプリケーションのルートにcustom session_save_path - directoryを作成しました。

私は疑問に思っていました:Linuxシステムベースのcronメカニズム、または私が知りませんが、セッションファイルを誤って削除した場合セッションファイルが不要なガベージであると仮定しますか?

それは私のアプリケーションを完全に台無しにするでしょう。

私はほとんど私がここで何か答えを見つけたので心配しています(http://stackoverflow.com/questions/8693934/how-does-php-know-when-to-delete-a-session)うまくいく。

+1

セッションは、セッションのために持続すると思われます.3週間はセッションよりもはるかに長く聞こえます。おそらく長期間持続するデータを格納するために何らかのデータベースを使用することをお勧めします。 – zneak

+0

ありがとうございます。私はそのデータベースがこの目的に適していることを知っていますが、私はアプリケーションをDBに依存しないものにする理由がありました。 –

+0

はい、あなたがカスタムパスを持っていても、古いセッションファイルはPHPによって削除されます。通常は、セッションファイルではなく長期保存用にCookieを使用します。 – dqhendricks

答えて

0

セッションファイルがPHPセッションガベージルーチンによって削除されている可能性があります。

これらの設定オプションを確認し、php sessionsのgcの詳細を確認してください。

http://php.net/manual/en/session.configuration.php

あなたはgc-_*ディレクティブに注意を払う必要があります。

+0

Thansks deadrunk。あなたは、彼らがカスタムセッションのディレクトリパスにあっても、これらのファイルをPHPのセッションガベージルーチンが削除するかもしれないと思いますか? –

+0

あなたのセッションファイルが削除されたと確信が持てば、gcがその責任を負うことになります。また、セッション数( 'SELECT COUNT(*)FROM sessions')を簡単に追跡し、時々これらの値を比較できる、カスタムセッション記憶域を設定することもできます。ファイルシステムを使いたいなら、次のコマンドを使ってファイル数を得ることができます: 'ls -l | wc -l' – deadrunk

+0

ありがとうございます。私はまだ問題に遭遇していません.24時間が経過し、セッションファイルは元に戻っています... –

関連する問題