Запустите быструю программу cgi через веб-браузер

Я создал программу hello FastCGI на C

#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. Поскольку я новичок в этом, я понятия не имею об этом. Может ли кто-нибудь предоставить мне подробный ответ, какие шаги мне нужно выполнить, чтобы запустить его через веб-браузер. Я попытался ввести URL-адрес как «http://localhost/fcgi-bin/hello1» после копирования файла «hello1» в /etc/apache/fcgi-bin/hello1.fcgi, но это дало ошибку 404.


person surbhi    schedule 16.05.2011    source источник


Ответы (1)


Вам все равно нужно включить расширение .fcgi в URL-адрес:

http://localhost/fcgi-bin/hello1.fcgi
person Marc B    schedule 16.05.2011
comment
Я также пробовал этот вариант, но получил «Запрошенный URL-адрес /fcgi-bin/hello1.fcgi не найден на этом сервере». Я думаю, нам нужно сделать некоторую настройку, но не знаю, что - person surbhi; 16.05.2011
comment
Проверьте журнал ошибок Apache, он точно скажет, какой путь сервер проверял для вашего файла. Является ли /fcgi-bin реальным каталогом на вашем сервере или конструкцией типа ScriptAlias/Alias? Возможно, вам придется настроить это в Apache, чтобы он знал, где искать. - person Marc B; 16.05.2011
comment
да, это сработало. Спасибо. Но теперь вместо запуска файла fcgi он просит меня сохранить его, так как это двоичный файл. - person surbhi; 17.05.2011
comment
Тогда, скорее всего, Apache не было сказано, что файлы .fcgi следует рассматривать как двоичные файлы fcgi. SetHandler fcgid-script должен быть где-то в вашем разделе httpd.conf для каталога fcgi. - person Marc B; 17.05.2011
comment
Спасибо за помощь Проблема решена, я не сделал запись файлов fcgi в site-enabled/000-default. Нам нужно добавить следующие строки: ‹Directory /usr/lib/fcgi-bin› AllowOverride None Options None Заказать разрешить, запретить Разрешить из всех ‹/Directory› - person surbhi; 18.05.2011