首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CGI脚本调用goaccess时不会运行

从CGI脚本调用goaccess时不会运行
EN

Unix & Linux用户
提问于 2014-08-08 00:30:42
回答 1查看 735关注 0票数 1

我正在尝试创建一个CGI脚本(用于nginx),该脚本输出包含服务器使用统计信息的html页面。我使用的是goaccess 0.7.1和CentOS 5 x86。

我已经将nginx配置为对端口8080上的请求运行bash脚本(stats.sh)。

bash脚本如下所示:

代码语言:javascript
复制
#!/bin/bash

cat /var/log/nginx/mydomain.access.log | goaccess -a > stats.html

echo Content-Type: text/html
echo Content-Length: $(stat -c%s stats.html)
echo
cat stats.html

当我运行./stats.sh时,一切都很好。它在控制台窗口中打印一堆html代码,如果我打开stats.html,我会看到一堆html代码。

问题是,当我尝试访问http://www.mydomain.com:8080/时,我只得到一个空白页。现在,当我在服务器上打开stats.html时,它完全是空的。

我确认了以下权限:

  • stats.sh-rwxr-xr-x
  • stats.html-rw-rw-rw-
  • goaccess-rwxr-xr-x

我还知道CGI工作正常,因为如果我修改stats.sh只输出stats.html的内容(而不写入文件),那么当我点击http://www.mydomain.com:8080/时,它就能正常工作;它只发送以前stats.html中的任何数据。所以在CGI脚本中调用goaccess出现了问题。有人知道为什么吗?

更新

我也试过这个:

代码语言:javascript
复制
echo "<!DOCTYPE hmtl><html><body>TEST</body></html>" > stats.html

当我点击http://www.mydomain.com:8080/时,它工作得很好,所以在从FastCGI运行goaccess时出现了一些问题。

我还尝试指定goaccess (/usr/local/bin/goaccess)的完整路径:

代码语言:javascript
复制
/var/log/nginx/mydomain.access.log | /usr/local/bin/goaccess -a >stats.html 2>stats.err

但这也不起作用。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2014-08-26 03:21:24

mydomainI终于让它开始工作了!主要问题是我的.goaccessrc文件。我在/root中愚蠢地创建了这个文件,所以显然非根用户无法读取它。我把它移到了/etc,现在它运行得很好。下面是bash文件的最终代码:

代码语言:javascript
复制
#!/bin/bash

cat /var/log/nginx/mydomain.access.log | /usr/local/bin/goaccess -a -p /etc/.goaccessrc >stats.html 2>stats.err

echo Content-Type: text/html
echo Content-Length: $(stat -c%s stats.html)
echo
cat stats.html

确保运行chmod 666 stats.err

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/149133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档