【问题标题】:Why php exec, system and passthrough functions stopped working if FPM is enabled为什么启用 FPM 后 php exec、system 和 passthrough 函数停止工作
【发布时间】:2017-11-18 13:42:50
【问题描述】:

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

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

提前感谢您的帮助。

【问题讨论】:

    标签: php server exec fpm pass-through


    【解决方案1】:

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

    前两个可以用这个脚本完成,你访问的时候看看它输出什么:

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

    jailed shell 有点难以检测,但运行 var_dump(scandir('/bin/')) 会给出一个指示,如果它的文件比从命令行运行 ls -ltr /bin 少得多,那么你在入狱的贝壳。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2013-12-03
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      相关资源
      最近更新 更多