从Python获得一个由PHP执行的输出



所以我的问题是,我有一个运行Ubuntu服务器18.04和Apache2的AWS EC2实例,当按下一个按钮时,它会发布一些变量,这些变量传递给一个函数,然后使用shell_exec()来执行Python脚本。然后,Python脚本将这些变量(方向和角度)作为命令行参数,然后尝试将其写入名为cmds.txt的文件。当这样做的时候,我得到这个错误报告给我:

Traceback (most recent call last):
File "/home/server/cmdWriter.py", line 45, in 
main()
File "/home/server/cmdWriter.py", line 41, in main
servoCmds(direction, angle)
File "/home/server/cmdWriter.py", line 28, in servoCmds
cmdFile = open("cmds.txt", "a")
PermissionError: [Errno 13] Permission denied: 'cmds.txt'

经过一番观察,我认为这是因为PHP以用户"www-data"它没有写权限,所以在看了其他问题之后,我尝试设置权限,以便www-data具有对文件夹和python文件的读写权限。不管出于什么原因,这都不起作用!我一直在绞尽脑汁,试图让这个工作,从其他几个问题中尝试建议,有人能帮助我吗?

您正在获得关于'打开'文件的错误。您必须确保.txt文件的权限为755或更高。如果您使用的服务器是Linux,那么您有两种修改权限的方法:

  1. 如果你有cPanel,你可以使用cPanel界面,只需通过进入文件更改权限,单击更改权限,然后将权限设置为777。

  1. 在linux命令行中,使用chmod命令-像这样:
chmod 777 cmds.txt 

如果不了解更多,我不能谈论与same相关的安全问题。

另一种可能是您正在使用'a'模式,但文件不存在。如果在执行命令时不确定文件是否存在,您可以尝试使用'a+',因为如果文件不存在,则会创建该文件。

可以吗?

最新更新