0

我正在尝试在 php 页面上执行 python 程序。python 程序编写了一些 html 代码,我可以在我的 php 页面中使用这些代码。当我从终端执行 python 程序时,一切正常。

但是后来我从 php 执行 python 程序什么也没发生。如果我exec("python program.py",$output)使用$output == "array ( )"

BUT if I remove the line `f = open('/var/www/data.php', w)`  
the `$output == " array ( 0 => 'start program', 1 => 'open error' ) "`

剪切php代码:

 output = null;
 exec("python /var/www/webwrite.py", $output);
 echo var_export($output, TRUE);

截取python代码:

print "start program"

f =  open('/var/www/data.php', 'w')
if f <> 0:
    print "open file"
    f.write('<div class=divdata><pclass="data">Data</p><div id="webdata">')
    fstr = '%3.1f'%data
    f.write(fstr)
    f.write('</div></div>')
    f.close()
else:
   print "open error" here

如何open(filename, w)在从 php 执行的 python 中使用?为什么我不能使用 open 命令然后从 php 执行。是“开放”的替代品

4

1 回答 1

0

通常在这些情况下,您可能有 PATH 或权限问题。

尝试将 py 脚本分配给与运行 Web 服务器相同的所有者,例如(假设 Web 服务器以单用户身份运行):

chown apache:apache your.py

它打开或写入的任何文件也需要由同一用户拥有。那么你可能需要增加权限:

chmod 775 your.py

如果这不起作用,请输入 python 脚本的完整路径。您可以通过以下方式获得:

which python

不过,不要将这些完整路径硬编码到 PHP 代码中,将其放在配置文件中。

于 2013-02-28T16:02:37.483 回答