从PHP调用Python脚本时出现问题

时间:2011-07-11 04:37:52

标签: php python

这是我的python脚本,在执行时会创建一个“test.txt”文件。当我使用终端(Ubuntu 11.04)root@gml-VirtualBox:/var/www/HMS# python test.py执行时。它按照我的预期在/var/www/HMS目录中创建了“test.txt”。

test.py:

#!/usr/bin/env python

def init():
    filename = "test.txt"
    file = open(filename, 'w')
    file.write("This is the new content of test.txt :-)")
    file.close()
    print "done"

def main():
    init()

if __name__ == '__main__':
    main()

但是当我尝试使用PHP调用此test.py时,它不会创建'test.txt'输出文件。

index.php:

$tmp = exec("python test.py");
echo "temp: $tmp";

test.py& index.php位于同一目录(/var/www/HMS/)中。但当我像这样修改test.py时:

#!/usr/bin/env python

def init():
    print "done"

def main():
    init()

if __name__ == '__main__':
    main()

它在浏览器中打印temp: done,这正是我所期望的。

我不知道为什么我以前的python代码没有按预期工作。

1 个答案:

答案 0 :(得分:1)

当您在命令行上测试python脚本时,您将以root运行。您可能没有像root那样运行网络服务器(这是一件好事),并且网络服务器的用户没有相应的权限来创建和/或写入该文件。