Exec()只是运行时,我访问目标PHP在浏览器中


exec() just run when i access target php in browser

我使用这段代码来运行另一个PHP的一些工作(ffmpeg转换)

    $binpath = get_option('binpath','/usr/bin/php');
    $command = $binpath." -cli -f ".ABSPATH."/videocron.php";
    exec( "$command > /dev/null &", $arrOutput );

但是当我上传视频并运行此代码时,永远不会转换视频。

但是当我从浏览器访问videocron.php时,我上传的所有视频突然转换!!

i use alternative exec function(system(); exec(); passthru(); shell_exec();)我用可读函数检查videocron.php,它是可读的。

即使我把owner videocron.php改成nobody user

在mod_security log我得到这个错误:

[Tue Sep 20 23:01:11 2016] [error] [client 37.156.10.171] ModSecurity: Multipart parsing error (init): Multipart: Boundary not found in C-T. [hostname "codenevis.net"] [uri "/lib/upload-ffmpeg.php"] [unique_id "V@GAb38AAAEAAGrk2QoAAAAH"]

但即使我卸载mod_security,它也不会自动工作。

,但在所有不转换视频,直到我从浏览器访问videocron.php !

感谢Patience &听我的问题。我通过安装mysqli来解决它。

yum install php-pdo php-mysqli