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。 是替代“打开”的地方
通常在这些情况下,您可能有PATH或权限问题。
尝试chown将此PY脚本到同一所有者的Web服务器正在运行,例如(假设Web服务器正在运行的单用户):
chown apache:apache your.py
的任何文件,它会打开或写入也将需要由同一个用户拥有。然后您可能需要增加权限:
chmod 775 your.py
如果这样不起作用,请输入您的python脚本的完整路径。你可以得到这个:
which python
不要硬编码这些完整的路径到PHP的代码,但是,把它放在一个配置文件。
我得到这个消息chown: invalid user: 'apache:apache'
–
Carlsen66
2013-02-28 17:38:02
这意味着php服务器作为一个不同的用户运行。你可以从顶部看到它(假设你正在使用linux),或者在/ etc/httpd /或/ etc/apache配置目录下(假设你使用的是Apache)。 – 2013-02-28 17:42:58
比较'f 0'没有意义。如果'open'失败,它会引发一个* exception *,导致脚本被终止。否则,比较将始终为真(文件对象不同于数字0)。 – 2013-02-28 16:12:18