Я вижу, что в моем каталоге «/ tmp» (машина с CentOS) есть тысячи файлов, и почти все они являются файлами сеанса PHP.
Меня беспокоит возможное влияние этого на мою систему.
Эти файлы когда-либо удалялись ОС, 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