Скрипт оболочки FastCGI - PullRequest
2 голосов
/ 13 января 2011

Я хотел бы использовать FastCGI со скриптами оболочки.Я нашел несколько руководств по написанию сценариев CGI в оболочке, но ничего о FastCGI, и, думаю, это не одно и то же.

Возможно ли это и как?*

Редактировать: Игнасио: Спасибо, но этой ссылке 14 лет, и она говорит, что в данный момент не поддерживается .Это все еще не поддерживается?

Ответы [ 4 ]

4 голосов
/ 14 января 2011

Смысл FastCGI в том, чтобы не создавать новый процесс для каждого входящего соединения.По самой природе языка скрипт оболочки будет порождать много процессов во время его выполнения, если вы не хотите сильно ограничивать себя.(Нет cat, awk, sed, grep и т. Д. И т. Д.).Итак, с самого начала, если вы собираетесь использовать шеллскрипт, вы можете также использовать обычный CGI вместо FastCGI.

Если вы все-таки настроены, первое большое препятствие заключается в том, что вы должны accept()подключения к гнезду прослушивания , предоставляемые веб-сервером .Насколько я знаю, нет инструмента UNIX, который делает это.Теперь вы можете написать один на каком-то другом языке, и он может запустить ваш шеллскрипт один раз для каждого входящего соединения.Но это именно то, что делает нормальный CGI, и я гарантирую, что он делает это лучше, чем пользовательская программа, которую вы или я бы написали.Итак, еще раз, придерживайтесь обычного CGI, если вы хотите использовать шеллскрипт.

2 голосов
/ 06 апреля 2012

«Если вы все равно определитесь, первое большое препятствие заключается в том, что вы должны принимать () подключения через прослушивающий сокет, предоставляемый веб-сервером. Насколько я знаю, (...) делаем почти так: exec_with_piped.c

(он использует трубы, а не розетки, но код C должен быть легко адаптирован для вашей цели)

Посмотрите на "Пишущие агенты в ш: разговор через трубу"

http://okmij.org/ftp/Communications.html

Кал

1 голос
/ 13 января 2011
нет

Нет

Заранее прошу прощения, если это глупый вопрос, но так ли это? можно использовать простой сценарий оболочки (sh или ksh) в качестве Программа FastCGI и если да, то как?

Вы не можете использовать простой сценарий оболочки в качестве программы FastCGI. поскольку Сценарий оболочки не может сохраняться в нескольких HTTP-запросах, он не может быть используется в качестве приложения FastCGI. Для программы для обработки нескольких HTTP запросы в его собственной жизни (то есть не просто обрабатывать запросы и умирают, как Приложения CGI), для связи с веб-сервером нужны средства получить запрос и отправить ответ обратно на сервер после обработки Это. Это общение осуществляется через библиотеку FCGI, которая реализует выше и в настоящее время он поддерживает только подмножество языков программирования, как C, Perl, Tcl, Java ... Короче говоря, он не поддерживает оболочку. Надеюсь, что это немного прояснилось. Stanley.

0 голосов
/ 13 января 2011

С http://www.fastcgi.com/:

FastCGI прост, потому что на самом деле это CGI с несколькими расширениями.

Также:

Как и CGI, FastCGI также не зависит от языка.

Таким образом, вы можете использовать FastCGI со сценариями оболочки или другими сценариями, например CGI.

Учебные пособия по CGI также полезны для изучения FastCGI, за исключением, возможно, особенностей настройки веб-сервера.

...