我的XAMPP-VM服务器中有一个php文件,如下所示:
<?php
$message = exec('python testPython.py');
echo($message);
?>testPython.py文件如下所示:
f = open('data.txt', 'w+')
f.write('test')
print('hello')
f.close()当我运行php文件,比如localhost/testPHP.php时,testPython.py文件停留在第一行,并且不能继续运行。当我注释掉第一行、第二行和最后一行代码时,程序运行正常,并打印出“hello”。有趣的是,当我像这样的python testPython.py从终端运行testPython.py文件时,它可以工作。它打开测试并写下“data.txt”。有人知道我该怎么解决这个问题吗?
注意:我知道我可以很容易地在php中做同样的事情,根本不需要执行python文件,但这篇文章只是展示了我的问题。我需要在python文件中打开一个文件,我已经在其中投入了大量工作。
发布于 2019-02-26 11:13:14
首先,您可以创建一个名为runpy的文件,并将其放入其中
python testPython.py然后在你的php中运行
exec('bash runpy');其次,确保文件夹设置为777,因为当您使用exec运行cmd时,您以apache用户www-data身份运行它,而在终端中作为root/admin运行,这就是为什么它在那里工作,而不是在php上,所以只需确保将权限设置为777
https://stackoverflow.com/questions/54877841
复制相似问题