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

Yin*_*nan 3 apache cgi-bin

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

但它失败了:[星期三10月28日16:13:51 2009] [错误] [客户端:: 1] OSError:[Errno 13]权限被拒绝:'平均/'

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

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

顺便说一句,我正在使用默认的Apache配置.安装Apache后我没有改变任何东西.

bob*_*nce 14

您必须向Web服务器用户授予对cgi-bin文件夹的写入权限.通常,Web服务器用户nobody与文件夹的所有者在同一组中,因此这意味着使cgi-bin成为可写的:

chmod a+rwx cgi-bin
Run Code Online (Sandbox Code Playgroud)

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

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

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