" mod_fcgid:从FastCGI服务器读取数据时出错"对于直接运行时工作的简单fcgi脚本

时间:2014-08-22 21:13:11

标签: python linux apache bash fastcgi

我有以下fcgi脚本:

#! /usr/bin/python
import subprocess, sys, os
command=["sudo", "-u", "matt", "/home/matt/cgi-bin/peercoin-abe", str(os.getpid())]
subprocess.Popen(command, stdin=sys.stdin).wait()

peercoin-abe包含:

#! /bin/sh PYTHONUNBUFFERED=1 exec python /home/matt/peercoin-explorer/Peercoin-Abe/abe.py \
--config /home/matt/abe-peercoin.conf --static-path static/ --watch-pid="$1" >> /home/matt/abe-peercoin.log

但是当我尝试访问它时,我在错误日志中收到错误:

[Fri Aug 22 22:07:08 2014] [warn] [client 149.254.181.200] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Fri Aug 22 22:07:08 2014] [error] [client 149.254.181.200] Premature end of script headers: peercoin-abe.fcgi

我设置了FcgidIOTimeout 40FcgidBusyTimeout 3600。 peercoin-abe.fcgi是可执行文件并由root拥有。 peercoin-abe是可执行文件并由matt拥有。

所以你会期望输出到abe-peercoin.log,但没有。直接运行peercoin-abe.fcgi会导致输出到abe-peercoin.log。

1 个答案:

答案 0 :(得分:1)

Fcgi对此并不十分明确,但问题是由于网络用户无权执行哑光的权限。将此添加到sudoers文件是必要的:

www-data ALL=(matt) NOPASSWD: /home/matt/cgi-bin/peercoin-abe