我有多个需要运行sessionclean cronjob的PHP-FPM chroot站点。我在这里找到了这个要点:
https://gist.github.com/zerthimon/4e15f4d04c888dee0410
对/etc/cron.d/php文件进行了编辑
*/30 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/www/pools ] && find /var/www/pools -path "*/var/lib/php5" -exec /usr/lib/php5/sessionclean {} $(/usr/lib/php5/maxlifetime) \;
首先要注意的是我正在运行php7,所以php5变成了php。第二个注意事项是我在/ usr / lib / php中没有maxlifetime,所以我试图在没有它的情况下运行它。这是我的修改不起作用:
[ -x /usr/lib/php/sessionclean ] && [ -d /var/www/html ] && find /var/www/html -path "*/var/lib/php" -exec /usr/lib/php/sessionclean {} \;
有人可以告诉我如何修改上面的内容来解析每个/ var / www / html / [chroot] / var / lib / php / sessions目录以删除当前没有使用的会话文件吗?
谢谢。
答案 0 :(得分:0)
我想出了一个解决方法。这不会直接修改/etc/cron.d/php文件,但确实为想要清除chrooted php-fpm环境中不再使用的会话文件的人提供了解决方案。
一个小小的脚本每4小时在crontab中运行一次。
#!/bin/bash
cd /var/www/html
for D in *; do
find /var/www/html/"$D"/var/lib/php/sessions/sess_* -mmin +240 -delete;
done
这将删除在最近4小时内未修改的所有会话文件,这些文件存储在每个chroot环境中。