如果启用了FPM,为什么php exec,system和passthrough函数停止工作

时间:2017-11-18 13:42:50

标签: php server exec fpm pass-through

Hello Guys我在服务器配置中是平均的。我使用php exec函数在我的网站上运行一些命令。但是如果我启用了PHP-FPM它就停止了工作。 有人知道为什么会导致这个问题吗? 下面是php函数来运行命令

$cmd="pdftk " . $pdf_to_fill . " fill_form " . $fdf_file . " output $outputfile 2>&1";
exec($cmd, $output, $return_var);

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这可以是一些事情,首先,尝试确认是否启用了exec,是否启用了安全模式,以及我们是否处于被监禁的shell中。

前两个可以使用此脚本完成,只需查看访问它时输出的内容:

if(function_exists('exec')) {
    echo '<h1>exec is available.</h1>';
}
if( ini_get('safe_mode') ){
    echo '<h1>Safe mode is on.</h1>';
}

监禁的shell有点难以检测,但运行var_dump(scandir('/bin/'))会给出一个指示,如果它的文件少于从命令行运行ls -ltr /bin的文件,那么你'在一个被监禁的外壳中。

此外,可能值得使用pdftk二进制文件的完整路径,如果它仍然不起作用,请尝试在pdftk的路径上运行is_executable