我的index.php文件中有以下代码。但它无法正常工作..当我直接访问domain.com/script.php时,它的工作原理。我需要在访问索引页面时在后台执行此脚本。任何人都可以帮助我吗?
shell_exec('php script.php > /dev/null 2>/dev/null &');
答案 0 :(得分:0)
检查php是否以安全模式运行,或者为了安全起见,在安全模式下禁用shell_exec为什么不使用
卷曲
运行代码
答案 1 :(得分:0)
我认为您的案例中有两个可能的问题
1)试试这个:
shell_exec("script.php 2>/dev/null >/dev/null &");
OR
shell_exec("script.php 2>&1 | tee -a /tmp/mylog 2>/dev/null >/dev/null &");
2)在windows下使用shell-exec时,处理捕获stderr输出问题的简单方法是在命令之前调用ob_start(),之后调用ob_end_clean()
ob_start();
ob_end_clean();
答案 2 :(得分:0)
当用户访问index.php时,您可以对script.php进行ajax调用,而不是使用shell_exec。
另一个选择是每隔5分钟左右运行script.php作为一个cron作业。当用户访问index.php时,可以将一些数据保存到数据库,指示应该运行script.php。 script.php应检查它是否标记为正在运行。