【发布时间】:2012-05-11 11:56:03
【问题描述】:
我有一个 python CGI 脚本,它采用输入 x 和y(整数)的形式,并使用 subprocess 将其传递给 C++ 可执行文件,其中程序将两个值的总和写入文本文件。
代码在我的本地机器上运行良好。然而,经过多次测试,我发现每当我在我的服务器(/var/www)上运行这个程序并尝试写入文件时,都会出现某种错误,因为我得到了“内部服务器错误”页面。
服务器不是我的,所以我实际上没有 sudo 权限。但是通过putty,我可以手动运行可执行文件,它确实会写入文件。
我的猜测是我必须以某种方式从 python 脚本运行可执行文件并获得一定的权限,但我不确定。如有任何建议,我将不胜感激!
编辑:
@gnibbler:有趣的是,我能够毫无问题地将文件写入 /tmp 目录。
所以我认为你的建议是正确的,从浏览器调用脚本时服务器根本不允许我写。
另外,我无法访问带有错误日志的目录,所以我将尝试获得许可。
【问题讨论】:
-
脚本是否通过网络服务器“启动”?因为如果是的话,WS 就是服务器上的用户(或者我是这么认为的)
-
网络服务器是否正确配置为启动 cgi 脚本?你测试过 cgi 是否有效吗?
-
脚本不以您的权限运行,它以 Web 服务器的权限运行。如果服务器没有写访问权限,脚本将因错误而死,就像你描述的那样。
-
是的,服务器配置为 cgi 脚本。 @tripleee,恐怕你是对的。我只是希望我可以允许写入。
标签: python linux cgi subprocess