我看到在我的“/ tmp”目录(一个CentOS机器)中有成千上万个文件,几乎所有文件都是PHP会话文件。
我担心这可能会对我的系统造成影响。
这些文件是否被操作系统,Apache或PHP删除? 或者我必须自己照顾呢?
它们应该被PHP垃圾收集器删除。 频率由php.ini中的session.gc_maxlifetime设置控制。 可能如果这不是踢你有其他问题。
在默认的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脚本来自动清理它们。 testing创builddate比创build系统上的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