我有一个 python CGI 脚本,它采用输入 x
和 y
(整数)形式,并使用 subprocess
将其传递给 C++ 可执行文件程序将两个值的总和写入文本文件。
代码在我的本地机器上运行良好。然而,经过多次测试,我发现每当我在我的服务器上运行这个程序(在 /var/www
中)并尝试写入文件时,都会发生某种错误,因为我得到“内部服务器错误"页面。
服务器不是我的,所以我实际上没有 sudo 权限。但是从 putty,我可以手动运行可执行文件,它确实写入了文件。
我的猜测是我必须以某种方式从具有一定权限的 python 脚本运行可执行文件,但我不确定。如果有任何建议,我将不胜感激!
编辑:
@gnibbler:有趣的是,我能够毫无问题地将文件写入/tmp 目录。
所以我认为您的建议是正确的,服务器根本不允许我在从浏览器调用脚本时编写。
此外,我无法访问包含错误日志的目录,因此我将不得不尝试获得权限。
最佳答案
要么环境不同(可能它试图写入错误的目录),要么更可能的是,cgi 运行的用户与您登录的用户不同。
例如,cgi 脚本以“nobody”或“www”等方式执行是很常见的。
您可以尝试让 cgi 将文件写入 /tmp
。这至少应该确认 cgi 正在运行的用户
关于python - 无法在 Linux 服务器上以编程方式写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10550858/