一直在拉我的头发试图找出为什么我的会议在30分钟被终止/杀死/摧毁.好吧,看起来基于Debian的系统有一个特殊的cron运行,忽略了所有的php.ini和apache配置,并在30分钟时杀死任何空闲会话.
cron路径: /etc/cron.d/php5
在cron里面:
# /etc/cron.d/php5: crontab fragment for php5 # This purges session files older than X, where X is defined in seconds # as the largest value of session.gc_maxlifetime from all your php.ini # files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime # 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) -print0 | xargs -n 200 -r -0 rm
我在配置和设置主机方面不错,但我不是sysAdmin.有人可以帮我覆盖/编辑/更改/重新配置这个,这样我可以设置更长的值吗?我认为3个小时会很好,但我想了解这些变化,所以如果有人想要让会话时间更短/更长,我会记录如何配置更改.
感谢有关此的任何见解帮助
编辑:添加/ usr/lib/php5/maxlifetime代码
#!/bin/sh -e max=1440 for ini in /etc/php5/*/php.ini; do cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true); [ -z "$cur" ] && cur=0 [ "$cur" -gt "$max" ] && max=$cur done echo $(($max/60)) exit 0
所以它看起来正在搜索所有的php.ini文件,找到最大的值,将它与1440(即24分钟)进行比较.
这是php.ini文件
/etc/php5/apache2/php.ini session.gc_maxlifetime = 1440 /etc/php5/cgi/php.ini session.gc_maxlifetime = 1440 /etc/php5/cli/php.ini session.gc_maxlifetime = 1440
但为什么我的脚本会话在30分钟而不是24分钟被杀?
编辑#2:CRON每30分钟运行一次,这就是为什么会议看起来每隔30分钟被杀死一次.但也可能是24到54分钟,仅供参考
同时查看代码:/usr/lib/php5/maxlifetime
它采用了最高值,在我的测试过程中,我试图降低阈值以加速条件.
看起来我只需要在php.ini文件上增加一个超过一小时的测试测试.
编辑文件 /usr/lib/php5/maxlifetime
该值应以秒为单位.这个文件实际上也会检查你的php.ini所以我不知道为什么它不适合你.