今から PHP 触る
pukiwiki の挙動に不審な点があるため、今から PHP を触る。
sessionファイルが大量に溜まる。
セッション変数は、スーパーグローバル変数として扱われます。
なんと1。
session.save_pathのパスの深さが2より大きい場 合、ガーベッジコレクションは行われません。 session_save_path()も参照してください。
なんと2。
session.gc_maxlifetime = 1 session.gc_probability = 100 session.gc_divisor = 100
にしてアクセスしても session ファイル消えない。
そりゃそうだデフォルトの path が /var/lib/php5 だもの。
session.save_path = /tmp
にしても相変わらず /var/lib/php5 に吐かれる。
php.ini をドキュメントルートにも置いてみる。利いてないな。
方針を変える。自前で GC しよう(GCというほどの処理じゃないのが悲しい)
- ログインに成功したものはセッションファイルのサイズが 1 以上
- 失敗したり、セッションが作られただけのものはサイズが0
なので、0なものはサクサク消す。1以上のものは1週間経ったら消す。
こんなのを cron に仕込んだ。
find /tmp/ -empty -name "sess_*" -delete find /tmp/ -name "sess_*" -mtime +7 -delete
やるきモリモリのところご迷惑をお掛けしました→id:yamanetoshiさん