【问题标题】:Run fast cgi program through web browser通过网络浏览器运行快速 cgi 程序
【发布时间】:2011-08-26 11:43:12
【问题描述】:

我在 C 中创建了一个 hello FastCGI 程序

#include <fcgi_stdio.h>
#include <stdlib.h>

int count;
void initialize(void)
{
  count=0;
}
int main(void)
{
  initialize();

  while (FCGI_Accept() >= 0)
  {
    printf("Content-type: text/html\r\n"
     "\r\n"
     "<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
     "<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
     "Request number %d running on host <i>%s</i>\n",
      ++count, getenv("REMOTE_HOST"));
  }
  return 1;
}

然后我使用“gcc -o hello1 hello1.c -lfcgi”编译程序

这在我的主目录中创建了“hello1”可执行文件(在 ubuntu 中) 当我运行这个文件时,我得到的输出是:

Content-type: text/html

<title>FastCGI Hello! (C, fcgi_stdio library)</title><h1>FastCGI Hello! (C, fcgi_stdio library)</h1>Request number 1 running on host <i>(null)</i>

我想从 firefox 运行这个文件。由于我是新手,所以我对此一无所知。任何人都可以为我提供详细的答案,我需要遵循哪些步骤才能通过网络浏览器运行它。 在将“hello1”文件复制到 /etc/apache/fcgi-bin/hello1.fcgi 后,我尝试将 URL 键入为“http://localhost/fcgi-bin/hello1”,但它给出了 404 错误

【问题讨论】:

    标签: apache fastcgi mod-fcgid


    【解决方案1】:

    您仍然需要在网址中包含 .fcgi 扩展名:

    http://localhost/fcgi-bin/hello1.fcgi
    

    【讨论】:

    • 我也尝试过这个选项,但得到'在此服务器上找不到请求的 URL /fcgi-bin/hello1.fcgi。我想我们需要做一些配置,但不知道是什么
    • 检查 Apache 错误日志,它会准确说明服务器正在检查您的文件的路径。 /fcgi-bin 是服务器上的真实目录,还是 ScriptAlias/Alias 类型构造?您可能需要在 Apache 中进行配置,以便它知道在哪里查找。
    • 是的,这行得通。谢谢。但现在不是运行 fcgi 文件,而是要求我将其保存为二进制文件。
    • 那么很可能 Apache 没有被告知 .fcgi 文件应该被视为 fcgi 二进制文件。 SetHandler fcgid-script 应该在 httpd.conf 的 fcgi 目录部分中的某个位置。
    • 感谢帮助 问题已解决,我没有在 sites-enabled/000-default 中输入 fcgi 文件。我们需要添加以下行: AllowOverride None Options None Order allow,deny Allow from all
    猜你喜欢
    • 2019-11-25
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 1970-01-01
    相关资源
    最近更新 更多