PHP执行Python

PHP执行Python

问题描述:

我想在php页面上执行一个python程序。 python程序写一些html代码,我可以在我的php页面中使用。 当我从终端执行python程序时,一切正常。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代码:Python代码

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

切:

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执行蟒蛇? 为什么我不能使用开放命令,然后从PHP执行exec。 是替代“打开”的地方

+0

比较'f 0'没有意义。如果'open'失败,它会引发一个* exception *,导致脚本被终止。否则,比较将始终为真(文件对象不同于数字0)。 – 2013-02-28 16:12:18

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

尝试chown将此PY脚本到同一所有者的Web服务器正在运行,例如(假设Web服务器正在运行的单用户):

chown apache:apache your.py 

的任何文件,它会打开或写入也将需要由同一个用户拥有。然后您可能需要增加权限:

chmod 775 your.py 

如果这样不起作用,请输入您的python脚本的完整路径。你可以得到这个:

which python 

不要硬编码这些完整的路径到PHP的代码,但是,把它放在一个配置文件。

+0

我得到这个消息chown: invalid user: 'apache:apache' Carlsen66 2013-02-28 17:38:02

+0

这意味着php服务器作为一个不同的用户运行。你可以从顶部看到它(假设你正在使用linux),或者在/ etc/httpd /或/ etc/apache配置目录下(假设你使用的是Apache)。 – 2013-02-28 17:42:58