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

标签 apache cgi-bin

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

但它失败了:
[2009 年 10 月 28 日星期三 16:13:51] [错误] [client::1] OSError: [Errno 13] Permission denied: 'average/'

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

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

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

最佳答案

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

chmod a+rwx cgi-bin

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

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

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

关于apache - 我的 cgi 脚本无法写入 Apache 的 cgi-bin 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1635921/

相关文章:

php - Yii2:-漂亮的 URL 已经形成,但不工作(说 404 NOT FOUND)

perl - 删除文件夹中的所有 *.jpg

c - 从 C 程序每秒记录 3000 个事件

通过 .htaccess 进行 Javascript 压缩?

android - 针对 Android 客户端请求优化 apache 和 mysql

process - Top & httpd - 揭秘实际运行的内容

java - Apache FTPClient listFiles() 与 listFileNames()

linux - AWS beanstalk cgi-bin 权限

linux:在 apache 中运行 cgi-bin 模块时出现错误 500,而不是从 ssh

python - 保持 Python 脚本在服务器上运行