【问题标题】:My cgi script can't write to cgi-bin folder of Apache我的 cgi 脚本无法写入 Apache 的 cgi-bin 文件夹
【发布时间】:2009-10-28 08:49:41
【问题描述】:

我正在编写一个 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 后我没有更改任何内容。

【问题讨论】:

    标签: apache cgi-bin


    【解决方案1】:

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

    chmod a+rwx cgi-bin
    

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

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

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

    【讨论】:

    • 非常感谢。
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 是的,需要先创建“average”文件夹来保存img文件。但创建失败。
    猜你喜欢
    • 2012-08-26
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2023-04-04
    • 2021-05-01
    相关资源
    最近更新 更多