всем привет! уже тыщщу раз читал в разных источниках, что CGI скрипты можно писать на C/C++, но нигде не видел ниодного примера. а любознательность меня мучает тем не менее... может кто-нить подскажет, как сабж делается и что для этого нужно в плане настройки веб-сервера итд итп? по логике, на сервере должен быть установлен _интерпретатор с/с++_. я прав? и еще, интересно, почему сабж не получил широкого применения? видимо есть на то какие-то объективные причины. подскажите, какие =) благодарю за прояснения.
Можно, только это уже не скрипты будут. Это скомпилированная программа, которая обрабатвает запрос и её вывод сервер отсылает клиенту. 1. По настройке веб-сервера не подскажу. 2. Интерпретатор не нужен, т.к. выполняется скомпилированная программа (т.е. готовый бинарник). Нужен компилятор, если собирать нужно из исходников. 3. Слабо распространен прежде всего из-за трудоемкости разработки и из-за проблем с безопасностью (особенно актуально на виртуальном хостинге).
varnie Никаких настроек не надо. Асм - фтопку)) Просто складываешь бинарь в cgi-bin, а респонс сливаешь в std::cout. Глобальные данные - в переменных окружения. Все просто до безобразия.
varnie Простой CGI на основе QTP: Код (Text): // gcc test.c -o test.cgi -lfcgi -lqtp #include <stdio.h> #include <stdlib.h> #include <stddef.h> #include <string.h> #include <limits.h> #include <qtp.h> int cgiInit() { return 0; } int cgiMain() { cgiHeaderContentType("text/html"); printf( "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n" "<html>\r\n" "</html>\r\n"); return 0; } test.cgi положить в cgi-bin, сделать chmod +x test.cgi
[offtop] И, предполагаю, столь же медленно. Если предполагается использование в "боевых" условиях - лучше смотреть на FastCGI. [/offtop]
flankerx imho, fastcgi гружит один раз, а потом каждый раз вызывает из памяти. по-простому, при каждом запросе происходит загрузка. в этом и есть разница.
Когда-то делал на заказ движок CMS на c++ все прекрасно работало (и главное быстро) На php все бысьрее конечно пишется но ИМХО c++ более вариабелен . Но и писать дольше...
_DEN_ Ну какие преимущества CGI программ перед PHP, при условии качественного кеширования? Три-пять можно набрать? Не уверен. А минусов? У... Предлагаю или закрыть эту ветку, или предложить обоим сторонам список сравниваемых параметров. А разборки "в чьей песочнице песок лучше", без критерия оценки качества песка смысла не имеют, ИМХО. P.S. Вообще в плане разработки Web-проектов, лучше PHP/Perl я ничего не вижу. CGI стоит применять (если вообще применять) в очень специфических случаях, которые я сейчас даже и не приведу. CMS/CMF для Web-сайтов к этому разряду не относятся.
Xerx Одна из крупнейших систем рунета, обрабатывающая по несколько тысяч запросов в секунду, с которой мне когда-то довелось работать, была на CGI. Это было не просто так.
_DEN_ А может там скорее был не Web-сервер, а сервер, создающий нити для входящих соединений? Сомневаюсь, что сервер с такой нагрузкой был реализован на запуск новых процессов для каждого входящего запроса.