Problem in calling Python script from PHP
这是我的python脚本,它在执行时创建一个"test.txt"文件。当我使用终端(Ubuntu 11.04)root@gml-VirtualBox:/var/www/HMS# python test.py执行时。如我所料,它在/var/www/HMS目录中创建了"test.txt"。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 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"输出文件。
1 2 3 4
| index .php :
$tmp = exec("python test.py");
echo"temp: $tmp"; |
两个test.py和index.php都在同一个目录(/var/www/HMS/中)。但当我这样修改test.py时:
1 2 3 4 5 6 7 8 9 10
| #!/usr/bin/env python
def init():
print"done"
def main():
init()
if __name__ == '__main__':
main() |
它在浏览器中打印temp: done,这是我所期望的。
我不知道为什么我以前的python代码不能按预期工作。
在命令行上测试python脚本时,将以root的身份运行。很可能您没有以root的身份运行Web服务器(这是一件好事),并且Web服务器的用户没有创建和/或写入该文件的适当权限。
- 非常感谢你的回答,现在我修好了。但是,在执行nltk.WordNetLemmatizer()函数时,我也有类似的问题。这次的许可不是问题,因为我是在你的建议之后检查的。如果你熟悉NLTK library,他能帮我吗
- 您是如何设置Web服务器的权限的?