我知道很多次都会问这个问题,但我还没找到合适的答案。这是:
我有一个网站 - debian上的apache / php / mysql。 我已经设法允许www-data执行iptables命令。现在我需要找出是否可以在不使用户/浏览器等待的情况下延迟这样的命令。
重点是什么? - 当用户验证php时,将获取其公共IP地址,并将在防火墙中打开一个端口。我希望这个端口打开(让我们说)2分钟(足够的时间来建立VPN连接),然后我想要关闭端口。
所以,基本上,我希望PHP执行一个命令,然后在2分钟后执行另一个命令 - 所有这些都不会让浏览器等待那两分钟。
从用户的角度来看:John在test.com上进行身份验证,并立即关闭其浏览器并启动其vpn连接。如果他在2分钟后关闭VPN连接,他必须再次登录。
这可能吗?
谢谢。
答案 0 :(得分:3)
使用at
:
shell_exec('echo "iptables --something 1.2.3.4" | at now + 2 minutes');
答案 1 :(得分:2)
有php执行一个bash脚本,在睡眠2分钟后为你运行iptables命令吗?
答案 2 :(得分:0)
将其作为单独的脚本运行,不要等待它完成,
exec("/usr/bin/php script.php &");