2012-03-10 55 views
0

我试图从我的/ dev文件夹访问UART设备来控制机器人。我试图从互联网上使用cgi python脚本来做到这一点。当我在命令行上执行它时,代码工作正常,但是当它通过服务器执行时,我得到一个500错误。我很确定这是某种权限问题,但我不知道如何解决它。如果有人知道这里发生了什么,或者我可以怎样修复它,那么我们将非常感谢他们的帮助。从cgi python脚本访问uart设备时出错

如果有人愿意看到它,我可以发布我的Python代码,但我不认为问题出在代码中,而是代码的执行。

由于提前,

迈克尔,

回答

0

也许solotion你可以检查设备文件的组:

[email protected] ~ $ ls -lash /dev/ttyS*                                                
0 crw-rw---- 1 root uucp 4, 64 03-10 13:20 /dev/ttyS0                                            
0 crw-rw---- 1 root uucp 4, 65 03-10 13:20 /dev/ttyS1                                            
0 crw-rw---- 1 root uucp 4, 66 03-10 13:20 /dev/ttyS2                                            
0 crw-rw---- 1 root uucp 4, 67 03-10 13:20 /dev/ttyS3 

对我来说是UUCP。并添加启动你的cgi脚本的用户到这个组(对于我的系统uucp)。但是您必须记住,该用户启动的所有其他cgi脚本也将被允许访问UART。

编辑:

对于Apache网络服务器,它看起来像suEXEC的可以为您解决。

suEXEC功能使得Apache用户运行下的用户ID从主叫 Web服务器的用户ID不同的CGI和SSI 程序的能力。正常情况下,当CGI或SSI程序执行时,它运行为与运行Web服务器的用户相同的用户 。

因此,看起来你可以为你的cgi脚本创建新用户,正确配置它,而不是使用它与你的脚本由Apache。

这里是文档的suEXEC: http://httpd.apache.org/docs/2.0/suexec.html

我从来没有使用过,但我希望这将有助于。

+0

我正在使用Apache服务器。这是我应该改变权限的程序? – KFC 2012-03-10 15:00:01

+0

我编辑了我的答案。 – Adam 2012-03-10 15:18:21