私の "/ tmp"ディレクトリ(CentOSマシン)には何千ものファイルがあり、それらのほとんどすべてがPHPセッションファイルです。
これが私のシステムに与える可能性のある影響について心配しています。
これらのファイルは、OS、Apache、またはPHPによって削除されたことがありますか?それとも自分で処理する必要がありますか?
PHP=ガベージコレクターによって削除する必要があります。頻度はsession.gc_maxlifetime
php.iniの設定。おそらくこれがキックしない場合は、他の問題があります。
デフォルトのDebianおよびUbuntuでは、セッションはcron /etc/cron.d/php5
によってクリーンアップされます
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete
ここで、/usr/lib/php5/maxlifetime
は、session.gc_maxlifetime
で設定されたライフタイムを分単位で示します。
また、再起動時-/ tmpは常に再起動時に消去されるため。
Cronスクリプトを設定して、自動的にクリーンアップすることができます。一般に、システムに設定されているCookieの有効期限よりも古い作成日をテストすることをお勧めします。
Cookieの有効期限の制限はこのように行われます(スクリプトが何かを出力する前に行う必要があります):
<?php
session_name('my_site_name');
session_set_cookie_params(1209600); # max cookie age of 14 days
# send cookie headers
session_start();
?>
次に、クリーンアップスクリプトで:
#!/bin/sh
find /tmp -maxdepth 1 -type f -name 'php_session_file_prefix*' -ctime +15 -exec rm -f {} \;
次に、crontabで:
# Run daily cron jobs at 03:40 every day
40 3 * * * /path/to/php-session-cleanup.sh