PHP脚本在从命令行调用时起作用,在通过Web服务器调用后台时不起作用

时间:2014-01-04 13:22:13

标签: php ffmpeg xampp background-process

我遇到了我写的某个PHP脚本(CLI模式)的问题。使用FFMPEG转换视频应该采取某些参数。当我从命令提示符调用它时,它工作正常。但是,我必须从Web服务器调用它。

处理请求的PHP脚本通过我在SE上找到的代码在后台调用PHP脚本:

if (substr(php_uname(), 0, 7) == "Windows"){ 
    pclose(popen("start /B ". $cmd, "r"));  
} 
else { 
    exec("nohup " . $cmd . " > /dev/null &");
}

但是,以这种方式运行时,PHP脚本不会创建文件,即使在比通过命令提示符花费的时间长得多的情况下也是如此。

脚本运行,我已经通过让虚拟条目插入数据库来检查它。它还具有创建文件的权限,我通过创建文件来验证文件。

阻止我的脚本正常工作的不同之处是什么?我在Windows 7上使用XAMPP开发并测试了这段代码。

//编辑:我忘了给你这个背景PHP脚本的链接:http://pastebin.com/pfTZMfwi

// EDIT2:我发现PHP进程运行的时间很短(直到下次刷新Windows任务管理器)。可能是PHP在退出时会杀死它们吗?

// EDIT3:不,这似乎不是问题。当脚本从Web服务器调用为后台时,我无法通过exec()执行程序。问题是什么,什么是解决方案/解决方法?

// EDIT4:似乎导致麻烦的命令不是exec()/ etc。但我在exec()之前做的echo命令。我要删除它,但为什么会导致问题?

0 个答案:

没有答案