我的cgi脚本无法写入Apache的cgi-bin文件夹

时间:2009-10-28 08:49:41

标签: apache cgi-bin

我正在处理一个python版本的cgi脚本,需要在cgi-bin文件夹中创建img文件(将在网页上显示)。

但它失败了: [Wed Oct 28 16:13:51 2009] [错误] [client :: 1] OSError:[Errno 13]权限被拒绝:'average /'

[注意]'average /'是cgi脚本首先要创建的用于保存这些img文件的文件夹。

我尝试给cgi脚本一个+ x权限,但它仍然失败了。这在Win和Mac上都会发生。

顺便说一句,我正在使用默认的Apache配置。安装Apache之后我没有改变任何内容。

2 个答案:

答案 0 :(得分:14)

您必须向Web服务器用户授予对cgi-bin文件夹的写入权限。通常,Web服务器用户类似于nobody,并且与文件夹的所有者不在同一组中,因此这意味着使cgi-bin成为可写的:注意:这是一个非常糟糕的主意。< /强>

chmod a+rwx cgi-bin

(或者,在Windows上设置cgi-bin的权限,以便为每个人提供“完全控制”。)

现在,服务器上的任何用户或任何未正确检查其文件名的脚本都可能在cgi-bin中创建一个文件,Apache将其解释为CGI脚本并执行。这是让您的服务器拥有的好方法。

运行时写入的文件应该放在cgi-bin之外的单独的“data”文件夹中(最好在Web根目录之外,用Alias绑定),Apache设置为不允许任何类型的该文件夹中的脚本或htaccess。然后,您可以设置“数据”777,或者更好的是,让它由Web服务器用户拥有。

答案 1 :(得分:0)

错误消息是抱怨文件夹average/的权限而不是cgi文件。

编辑:那么你的python脚本(在Win和Mac上运行)负责创建文件夹和img文件?

您一定要检查您的脚本以及 parent 文件夹中要创建平均值的权限。

如果不仅仅是权限问题,正如错误消息所示,您将需要一位Python专家。