3

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

但它失败了:[Wed Oct 28 16:13:51 2009] [error] [client ::1] OSError: [Errno 13] Permission denied: 'average/'

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

我尝试为 cgi 脚本授予 a+x 权限,但仍然失败。这发生在 Win 和 Mac 上。

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

4

2 回答 2

14

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

chmod a+rwx cgi-bin

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

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

运行时编写的文件应该放在一个单独的“数据”文件夹中,在 cgi-bin 之外(最好在 web 根目录之外,用 绑定Alias),Apache 设置为禁止来自该文件夹的任何类型的脚本或 htaccess。然后,您可以设置 'data' 777,或者可能更好的是,将其归 Web 服务器用户所有。

于 2009-10-28T11:05:01.020 回答
0

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

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

您绝对应该检查您的脚本以及要在其中创建 average/的父文件夹的权限。

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

于 2009-10-28T08:52:03.187 回答