Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Hello world на C++ и FastCGI на Apache


Автор: it_medved 13.1.2012, 12:46
Доброго времении суток!

Пытаюсь сделать Hello World программу на C++ под FastCGI и Apache в ОС Ubuntu 10.04.

Модуль mod_fcgi для апача установил, fast cgi sdk library тоже, в IDE Netbeans настроил компилирование с подключением библиотеки libfcgi.so, файл настройки апача для fcgi поменял.

В нетбинсе проект запускается, и пишет Hello World. Если поместить исполняемый файл в папку с сайтом и запустить через браузер - проходит 30 секунд, и timeout exeption (500).

Вот код программы:

Код

#include <fcgi_stdio.h> /* fcgi library; put it first*/
#include <fcgiapp.h>
#include <cstdlib>
#include <iostream>

using namespace std;
int count;
/*
 * 
 */
int main(int argc, char** argv) {

    
    /* Response loop. */
      while (FCGI_Accept() >= 0)   {
        cout<<"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";
      }
    return 0;
}


И еще, может ли кто-нибудь подсказать где найти мануалы от А до Я для FastCGI ? Второй день бьюсь, ничего толкового не нахожу..

Если тему создал не в той теме - модераторы, перенесите пожалуйста куда нужно, более подходящей ветки не нашел.

Автор: svlary 14.1.2012, 15:50
Цитата(it_medved @  13.1.2012,  12:46 Найти цитируемый пост)
проходит 30 секунд, и timeout exeption (500).

 А другие странички (статические, НЕ из cgi-bin) на Вашем сервере видны ? Может вобще сервер не работает ?

Автор: it_medved 18.1.2012, 15:41
Цитата(svlary @ 14.1.2012,  15:50)
Цитата(it_medved @  13.1.2012,  12:46 Найти цитируемый пост)
проходит 30 секунд, и timeout exeption (500).

 А другие странички (статические, НЕ из cgi-bin) на Вашем сервере видны ? Может вобще сервер не работает ?

Да, статический контент + PHP скрипты отдаются..

Может я не правильно компилирую бинарники? 
В отличии от обычной консольной программы - я добавил папку с библиотеками /usr/local/lib 

Автор: tzirechnoy 18.1.2012, 17:49
Хм. FastCGI_Acept, как следует из мана, работает с stdio. А Вы пытаетесь вывести в iostream. Я бы, для начала, попробовал как-то исправить эту несовместность.

Автор: it_medved 18.1.2012, 18:23
Ок, переделал. Компилятор выдает ошибки:
undefined reference to `FCGI_printf'
undefined reference to `FCGI_Accept'
Код:
Код

#include <fcgi_stdio.h> /* fcgi library; put it first*/
#include <fcgiapp.h>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

int main(int argc, char** argv) {
    /* Response loop. */
      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");
      }
    return 0;
}

Автор: tzirechnoy 18.1.2012, 20:25
Скорее всего, в этот раз Вы использовали какую-то другую строку вызова компилятора (например, забыли -lfcgi). Проверить можно вернувшысь к предыдущему варианту и убедившысь, что он точно такжэ не компилируется.

Автор: it_medved 19.1.2012, 11:09
Спасибо, помогло! Теперь в моем браузере гордо красуется надпись "Hello FastCGI"  smile 

Еще вопросик - в библиотеке http://www.fastcgi.com есть готовые методы для взятия GET, POST, COOKIES ?

Автор: tzirechnoy 19.1.2012, 11:32
Вряд ли. Во всяком случае, если бы я писал -- я бы их не делал.
 Одна из причин -- потому, что таких методов есть в других библиотеках веб-программирования, в количестве достаточном.

Автор: it_medved 19.1.2012, 13:08
Цитата(tzirechnoy @ 19.1.2012,  11:32)
Вряд ли. Во всяком случае, если бы я писал -- я бы их не делал.
 Одна из причин -- потому, что таких методов есть в других библиотеках веб-программирования, в количестве достаточном.

К сожалению, не устраивает скорость работы PHP. Хочу сделать страницу на FastCGI+C++

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)