2011-01-13 3 views
2

쉘 스크립트와 함께 FastCGI를 사용하고 싶습니다. 셸에서 CGI 스크립트를 작성하는 방법에 대한 자습서를 여러 개 찾았지만 FastCGI에 관한 내용은 없습니다.FastCGI 쉘 스크립트

가능한가요?

감사합니다

편집 : 이그나시오 :하지만이 링크는 14 세이며,이되지 현재 지원하는 것을 말한다 주셔서 감사합니다. 아직 지원되지 않습니까?

답변

4

FastCGI의 모든 요점은 들어오는 연결마다 새로운 프로세스를 생성하는 것을 피하는 것입니다. 쉘 스크립트는 언어의 본성으로 인해 실행 과정에서 많은 프로세스를 생성합니다 (자신을 크게 제한하지 않는 한). (cat, awk, sed, grep 등). 따라서 처음부터 쉘 스크립트를 사용한다면 FastCGI 대신 일반 CGI를 사용할 수 있습니다.

어쨌든 결정되면 가장 큰 장애물은 웹 서버에서 제공하는 청취 소켓 의 수신 연결에 accept() 연결이어야한다는 것입니다. 지금까지 내가 아는 한, 이것을 수행하는 유닉스 툴은 없다. 자, 여러분은 다른 언어로 하나를 작성할 수 있으며, 들어오는 연결마다 셸 스크립트를 한 번 실행할 수 있습니다. 그러나 이것이 정상적인 CGI가하는 것과 정확히 같습니다. 그리고 나는 여러분이나 내가 쓰는 커스텀 프로그램보다 더 나은 것을 보장합니다. 쉘 스크립트를 사용하려면 일반 CGI를 사용하십시오.

+0

netcat'nc -k -l 0.0.0.0 10000> out.txt'은 어떻게됩니까? – ton

+0

그건 netcat이 듣고 자신의 소켓을 엽니 다. netcat이 그런 것을 지원했다면, 명령은 파일 디스크립터 3가 웹 서버에 의해 스크립트로 전달 된'nc -k -l/dev/fd/3'과 같이 보일 것이다. – Jander

1

No

나는이 바보 같은 질문이지만이 FastCGI를 프로그램으로 단순한 쉘 스크립트 (sh 또는 ksh를)를 사용하는 생각할 경우 미리 사과 만일 그렇다면, 어떻게?

FastCGI 프로그램으로 간단한 쉘 스크립트를 사용할 수 없습니다. 쉘 스크립트는 여러 HTTP 요청에서 지속될 수 없으므로 을 FastCGI 응용 프로그램으로 사용할 수 없습니다. 프로그램이 복수의 HTTP 요청을 처리 할 수있게하려면 (예 : CGI 응용 프로그램과 같이 요청을 처리하고 종료하는 것뿐만 아니라) 웹 서버 과 통신하여 응답을 보내려면 몇 가지 방법이 필요합니다. 서버 처리 후 그것. 이 통신은 위의 을 구현하는 FCGI 라이브러리를 통해 수행되며 현재 C, Perl, Tcl, Java ... 과 같은 프로그래밍 언어의 하위 집합 만 지원합니다. 즉, 쉘을 지원하지 않습니다. 희망을 조금 넘겼습니다. 스탠리. http://www.fastcgi.com/에서

0

: 실제로 몇 확장과 CGI 때문에

FastCGI를가 간단합니다. 또한

: CGI처럼

는 FastCGI를 또한 언어에 독립적이다.

그래서 CGI와 마찬가지로 쉘 스크립트 또는 다른 종류의 스크립트와 함께 FastCGI를 사용할 수 있습니다.

CGI 용 자습서는 웹 서버 설정의 특수성을 제외하면 FastCGI도 배우는 데 유용합니다.

+3

그리고 물론, 당신은 영원히 루프를 걸고 웹 서버와 통신하여 신호를 처리해야하는 부분이 있습니다 ... –

2

"결정을 내린다면 첫 번째 커다란 장애물은 웹 서버가 제공하는 청취 소켓에서 연결을 받아 들여야한다는 것입니다. 내가 아는 한 (...)"C 거의 이렇게 프로그램 : exec_with_piped.c

(이것은 파이프가 아닌 소켓을 사용하고 있지만, C 코드를 쉽게 목적에 맞게해야한다)에서

봐 "쉬에 쓰기 에이전트 : 파이프를 통해 대화"

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

Kalou