我已经试图调用从bar.php一个Python代码一样从PHP调用Python和保存文件,
$cmd = "python foo.py";
system($cmd);
它运行没有问题。但是,foo.py应该将文件保存在磁盘上。它不在那里。我以某种方式发现运行Web服务器的用户是www-data。
我试着从用户www-data的命令行运行php脚本 $ php bar.php 它运行正常并保存文件,所以用户www-data应该有权写入目录。
我注意到有一个投票“对其他用户没有帮助”。但是,当你有一个PHP服务,并且你有用Python等其他语言编写的代码时,知道这是必要的。
感谢您的所有建议。
我怀疑它为B/C我在Python代码 在foo.py使用Matplotlib,我有这样
pl.scatter(data,...)
pl.plot(data,...)
pl.legend()
pl.save('path/to/bam.png')
也许从网络调用的时候,它可以绘制图像的代码。那是possbile?如果是这样,有什么方法可以解决它?谢谢!
您必须调试脚本。也许它不是在你认为的文件上写文件? –
嗯,我在命令行运行,它的行为完全像我想要的。在Web浏览器中,它向stdout显示相同的输出。 –
你确定Python脚本从PHP调用时运行吗?如果你是它的100%,那么检查你正在写入的文件夹的权限。 –