PHP 执行 Python
我正在尝试在一个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
我该如何在从PHP执行的Python中使用 open(filename, w)
呢?为什么在从PHP执行时我不能使用open命令?有没有替代“open”的方法?
1 个回答
0
通常在这种情况下,你可能遇到了路径问题或者权限问题。
试着把你的 Python 脚本的所有权改成和运行网页服务器的用户一样,比如说(假设网页服务器是以单个用户身份运行的):
chown apache:apache your.py
它打开或写入的任何文件也需要归同一个用户所有。然后你可能需要提高权限:
chmod 775 your.py
如果这样还不行,就把你的 Python 脚本的完整路径写上。你可以通过以下方式获取这个路径:
which python
不过,不要把这些完整路径直接写死在 PHP 代码里,应该放在一个配置文件中。