PHP会话文件是否被删除?

我看到在我的“/ 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/maxlifetimesession.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