在尝试从shell_exec调用php脚本时无法打开输入文件

时间:2015-12-21 23:07:21

标签: php

我正在尝试构建一个小型自定义任务调度程序。基本上我的想法是我让cron运行我的流程脚本,它在数据库中查找并找到任何准备运行的计划任务,然后运行它们。因此,我认为最好的方法是尝试在背景中启动任务"通过shell_exec并使用>我理解/dev/null,因此初始脚本(流程脚本)不会等待任务脚本完成。
首先,如果有更好的方法来实现这一目标,我愿意接受建议。虽然请注意我在php 5.3,所以在5.4及以上可能有一些选项我无法访问:(

然而,问题就在眼前: 我正在我的Windows机器上测试WAMP,我正在尝试拨打这样的电话:

shell_exec("php $path$base_url$querystring > output_test.txt 2>&1 &");

$path是脚本的完整Windows路径

$base_url是我调用的脚本的基本网址

$querystring当然是传递给任务脚本的查询字符串

我也输出到output_test.txt,它在同一目录中创建了这样的文件,我得到以下错误:

  

无法打开输入文件:

     

C:?\ XAMPP \ htdocs中\电子邮件\ batch_email_send_u2u.php经销商= 7

是的,我意识到路径引用了xampp安装,但这不是问题 - 所有的wamp文件都是从那里执行的,其他一切都像这样工作多年 - 它只是设置这种方式来支持传统的设置

在我看来,shell_exec正在定位并运行php,它只是因为它无法打开引用的脚本。无法弄清楚原因。

此外,我需要最终在真正的Linux服务器上工作,所以任何关于如何实现这一点的建议将非常感谢!

1 个答案:

答案 0 :(得分:0)

找到解决方案!特别感谢dan08让我走上了正确的道路。 最终我在这个帖子中找到了答案:Pass variable to php script running from command line

我最终使用了该帖子中描述的argv []数组,并对脚本进行了一些调整,我现在称它为冠军。