如何使用Php shell_exec运行外部php脚本?

时间:2018-03-06 04:39:17

标签: php curl exec shell-exec

我的index.php文件中有以下代码。但它无法正常工作..当我直接访问domain.com/script.php时,它的工作原理。我需要在访问索引页面时在后台执行此脚本。任何人都可以帮助我吗?

shell_exec('php script.php > /dev/null 2>/dev/null &');

3 个答案:

答案 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应检查它是否标记为正在运行。