【问题标题】:popen() in php works from command line but not from browserphp 中的 popen() 从命令行工作,但不能从浏览器工作
【发布时间】:2015-03-19 20:27:12
【问题描述】:

我有一个简单的 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

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

【问题讨论】:

    标签: php popen


    【解决方案1】:

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

    【讨论】:

    • 谢谢,它成功了。不过也必须更改父目录的权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 2011-05-11
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多