开发者

Problem in calling Python script from PHP

This is my python script which creates a "test.txt" file when executed. when I execute using terminal (Ubuntu 11.04) root@gml-VirtualBox:/var/www/HMS# python test.py. It creates the "test.txt" in the /var/www/HMS directory as I expected.

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()

But when I try 开发者_C百科to call this test.py using PHP, It's not creating the 'test.txt' output file.

index.php:

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

Both test.py & index.php are in the same directory(/var/www/HMS/). But when I modified the test.py like this:

#!/usr/bin/env python

def init():
    print "done"

def main():
    init()

if __name__ == '__main__':
    main()

It prints temp: done in the browser, which is what I expected.

I don't know why my previous python code didn't work as expected.


When you test the python script on the command line, you're running as root. Chances are you're not running the webserver as root (which is a good thing), and the webserver's user does not have appropriate permissions to create and/or write to that file.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜