我正在处理一个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之后我没有改变任何内容。
答案 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文件。
您一定要检查您的脚本以及 parent 文件夹中要创建平均值的权限。
如果不仅仅是权限问题,正如错误消息所示,您将需要一位Python专家。