php中的popen()可以从命令行运行,但不能从浏览器运行

时间:2015-03-19 20:27:12

标签: php popen

我有一个简单的PHP脚本,它解析来自html表单的用户输入。由于Python对字符串处理做得很好,我实际上是在python中编写了解析器。所以我将用户输入的字符串转发到python脚本以便使用

进行处理
    $query = "avocados"; // from HTML form 
    $handle = popen("./NLParser.py $query","r");
    $read = fread($handle,2048);
    pclose($handle);

当我从命令行解释器执行php时,我得到了所需的输出。但是当我从浏览器访问相同的php文件时,我从fread()获取空字符串。我试着检查$ handle是否为FALSE,我也从stderr读取,没有问题。请帮我弄清楚这种不一致。

我试过了

phpinfo();

命令行php解释器使用的php.ini文件是

Loaded Configuration File => /etc/php5/cli/php.ini

和网上的相同条目是

Loaded Configuration File   /etc/php5/apache2/php.ini

我正在使用Ubuntu 14.04.1 LTS和PHP版本5.5.9-1ubuntu4.4。所有文件的权限都设置为755

1 个答案:

答案 0 :(得分:1)

尝试将NLParser.py的所有者和组更改为您的服务器。