- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
一直在拔头发试图找出为什么我的 session 在 30 分钟时被终止/杀死/销毁。好吧,看起来基于 Debian 的系统有一个特殊的 cron 运行,它忽略所有 php.ini 和 apache 配置,并在 30 分钟时终止任何空闲 session 。
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
我不擅长配置和设置主机,但我不是系统管理员。有人可以帮我覆盖/编辑/更改/重新配置它以便我可以将值设置得更长吗?我认为 3 小时会很好,但我想了解更改,因此如果更高层的人想要缩短/延长 session 时间,我会记录如何配置更改。
感谢对此的任何见解帮助
编辑:添加/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
但为什么我的脚本 session 会在 30 分钟而不是 24 分钟时被终止?
编辑#2:CRON 每 30 分钟运行一次,这就是 session 看起来每隔 30 分钟被终止的原因。但也可能是 24 到 54 分钟,仅供引用
同时查看以下代码:/usr/lib/php5/maxlifetime
它采用了最高值,在我的测试期间,我试图降低阈值以加快条件。
看来我只需要在 php.ini 文件上增加一个到一个多小时的测试测试。
最佳答案
编辑文件/usr/lib/php5/maxlifetime
该值应以秒为单位。该文件实际上还会检查您的 php.ini,所以我不知道为什么它对您不起作用。
关于php - 基于 Debian 的系统 session 在特殊 cron 中的 30 分钟被杀死,如何覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3865303/
在Debian的最新稳定版本中似乎没有/etc/rc.local Debian Stretch 。它在哪里? /etc/rc.local已过时吗? 最佳答案 rc.local已弃用。 看来您仍然可以拥
尝试从未签名的存储库将 Debian 软件包安装到 Debian 9: # apt-get --allow-unauthenticated update Get:1 http://files.free
我尝试打开 5431 端口,这样输入: sudo iptables -A INPUT -p tcp --dport 5431 --jump ACCEPT iptables-save 当我在链 ipta
我正在尝试为我的应用程序构建一个预编译的 debian 包。我的包中存在一些二进制文件(编译模块)。现在,我收到有关将二进制文件添加到 debian/source/include-binaries 的
Debian 站点很棒 http://www.debian.org/distrib/packages ,我知道搜索工具,但我真的想要一个完整的包/文件/架构目录,采用某种可使用的格式 - xml、js
Debian 如何管理软件包名称的冲突?例如,当不同的存储库中有许多同名的包时。 最佳答案 当有很多同名的包时,APT 怎么知道它们是不同的呢? 不能。所以它会安装版本号最高的版本。 关于debian
我正在构建一个 Debian 软件包,它通过将许多其他紧密相关的软件包声明为依赖项来收集它们。我希望这些依赖项与包的版本完全相同。 Debian 构建系统中有没有办法避免在控制文件中硬编码(除了自己预
我有一个持续集成服务器构建一些软件,这些软件依赖于比 debian squeeze 中提供的 apt 包更新的 libqt4-dev 版本。该版本在 debian wheezy 中可用。我如何告诉 a
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 debian 上安装了一个带有 xfce4 的新系统。我的问题是如何让 xfce 在启动时运行?现在我只能用 exec ck-launch-session startxfce4 运行它。 谢谢
我听说我可以使用 apt-get install libc6 来完成此操作,但我需要向/etc/apt/sources.list 添加一些内容才能接收最新的 glibc 版本。 我应该做什么? 最佳答
嗨,我正在尝试在运行 rasbian wheezy 的树莓派上安装 geos,以便我可以在我的 python 脚本中包含 shapely 模块。我尝试使用: git clone git://git.d
您好,我正在尝试在运行 rasbian wheezy 的树莓派上安装 geos,这样我就可以在我的 python 脚本中包含 shapely 模块。我尝试使用:git clone git://git.
我正在尝试在 Debian 8.5.0 上安装 GitLab。我关注installation guide但最后一步失败了,我在文档中找不到任何信息。 gitlab-ctl 重新配置完成 Running
我已经安装了 jetty 9,但我无法将它作为服务启动/停止。 从命令行运行有效。 root@backend:/opt/jetty# service jetty start Job for jetty
我正在寻找一种快速方法来验证 debian/control我的项目文件在将它们发送到构建服务器之前在语法上是有效的。 (即等效于 apache2ctl configtest 但对于 debian 控制
[相关部分] 我的 bitbucket-pipeline 看起来像这样: - step: image: python:3.5.1 name: upload to s3
当我下载一些包源时,(例如foo-[ver].orig.tar.gz、foo-[ver].dsc),我在使用dpkg-source -x foo-[ver].dsc时经常遇到依赖问题。和 dpkg-b
我有一台旧的专用服务器,想将其升级到最新的操作系统版本。 我正在寻找从 升级的最佳方式Debian 6 Squeeze => Debian 8.6 杰西 . 最佳答案 首先,请记住,从一个 Debia
我正在尝试使用 Cpack 构建一个正确命名的 Debian 包。我的 CMakeLists.txt 中有以下内容: set(CPACK_PACKAGE_NAME "something") set(C
我是一名优秀的程序员,十分优秀!