mod_fastcgi-2.4.2 릴리즈

RisaPapa의 이미지

http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz

최근 FastCGI가 PHP사이트에서도 가끔 화제가 되고 있고 펄에서도 mod_perl에서 FastCGI로 전향하는 사람들이 늘어 나고 있는 추세입니다. 가끔 FastCGI의 패치를 포스트하기도 하고 계속해서 테스트를 하고 있는데 아파치2에서도 어느정도 안정된 버전이 릴리즈되었습니다.

현재 PHP사이트에서 사용하고 있는 FastCGI라이브러리는 조금 변경된 라이브러리를 사용하고 있습니다. 가능하면 같은 통일화된 라이브러리로 하자고 양 사이트의 코어 담당자에게 권고를 하고 있지만 FastCGI 사이트측에서는 PHP사이트에서 수정된 코드에 대해서 코미트(commit)를 하지 않는 것 같습니다. 또 PHP에서는 500번의 억세스가 있으면 메모리 리크를 회피하기 위해서 FastCGI 프로세스를 죽이고 다시 리로드하는데 mod_fastcgi측의 프로세스 메니져에서 이것을 처리해 주지 못하는 버그도 아직 내재하고 있습니다. 다시 말해서 기본 디폴트로 3번 프로세스를 리로드하면 mod_fastcgi측의 프로세스 메니져에서 프로그램에 이상이 있는 것으로 인식해 그 이상 PHP의 FastCGI프로세스를 생성해내지 못합니다. 1501번째 리퀘스트부터 응답을 할수 없는 상태가 됩니다. 이것 역시 양쪽 사이트에 이야기를 했는데도 서로 미루는 것 같습니다. 이것은 사실 PHP사이트에서 받아 들여 수정을 해야한다는 생각도 합니다만 서로 고집들이 세군요....

그외 자바에서의 FastCGI는 제가 많이 매력을 느끼는 부분입니다. 서블렛 자체가 FastCGI와 같은 원리로 작동하기 때문입니다. 아무튼 시간이 되면 이 자바 버전을 왼성해서 릴리즈하고 싶은 생각입니다.

댓글

익명 사용자의 이미지

fastcgi는 어따 쓰는건가요?

정태영의 이미지

Anonymous wrote:
fastcgi는 어따 쓰는건가요?

아파치의 모듈로 해당 언어를 지원할 수 있도록 만들면 아파치 크기가 커지게 되고..
그렇다고.. 그냥 그때 그때 파이프로 stdin,out 을 연결시키고... cgi 를 실행시키게 되면.. 프로세스를 만드는데 드는 오버헤드 등때문에 부하가 커지게 되니..

fastcgi 를 담당하는 프로세스가 미리 떠있고..
그 fastcgi 프로세스와.. 아파치가 통신을 해서.. cgi를 실행시키는 방식으로 알고 있습니다 :)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

Necromancer의 이미지

fastcgi는 cgi 후속판이라고나 할까요.

cgi는 요청이 들어올 때마다 매번 프로세스가 떠서 초기화하고
실행하고 끝납니다.
fastcgi는 처리완료되도 계속 떠서 다음요청 기다리고 받아처리합니다.
프로세스 생성, 제거시간이 없어지니까 응답속도도 더 빨라지고요.

국내에서는 이거 관련된 책이 전무한거 같더군요. cgi는 간혹가다
구할수는 있지만.

경쟁상대인 scgi는 아예 우리말 자료가 하나도 없습니다. -_-;;
...

fastcgi+postgresql로 가동되는 게시판 하나 만드는중... :D

Written By the Black Knight of Destruction

sh.의 이미지

저도 fast-cgi에 관심이 있는데 제가 주로 다루는 php에 관해서는 자료가 별로 찾지 못하겠더군요..
apache에 mod_fastcgi를 설치하고, php설치시에 --enable-fast-cgi를 주는걸로는 달라진 점을 못 느끼겠던데..
몇일 전에 kldp wiki에 올라온 http://wiki.kldp.org/wiki.php/PHPWithFastCGI 페이지를 보더라도 그다지 눈에 띄는 성능향상은 없는것 같습니다. 제소견으로는 간단하고 excute time이 짧은 스크립트일수록 차이가 많이 날것 같은데 말이죠..
그리고 예전부터 RisaPapa님이 언급하신 fast-cgi를 이용한 분산환경에 대한 내용은 감도 못잡겠습니다 --;
혹시 경험있는 분들이 계시면 고견을 나눠주시면 감사하겠습니다 :)

wkpark의 이미지

bs0048 wrote:
저도 fast-cgi에 관심이 있는데 제가 주로 다루는 php에 관해서는 자료가 별로 찾지 못하겠더군요..
apache에 mod_fastcgi를 설치하고, php설치시에 --enable-fast-cgi를 주는걸로는 달라진 점을 못 느끼겠던데..
몇일 전에 kldp wiki에 올라온 http://wiki.kldp.org/wiki.php/PHPWithFastCGI 페이지를 보더라도 그다지 눈에 띄는 성능향상은 없는것 같습니다. 제소견으로는 간단하고 excute time이 짧은 스크립트일수록 차이가 많이 날것 같은데 말이죠..
그리고 예전부터 RisaPapa님이 언급하신 fast-cgi를 이용한 분산환경에 대한 내용은 감도 못잡겠습니다 --;
혹시 경험있는 분들이 계시면 고견을 나눠주시면 감사하겠습니다 :)

모니위키 속도 테스트겸, mod_fastcgi,php+eAccelerator에서 속도가 얼마나 나오나 테스트해보았는데, mod_php보다 안정적인 것 같습니다. php의 경우는 속도향상은 많지는 않지만 분명이 있고요:)

조금 더 찾아보니, perl은 fastcgi로 엄청난 성능향상이 있다고 하는데, php의 경우는 그만큼의 향상을 기대할 수는 없는것 같더군요.

또, 시도해보진 않았지만 suEXEC를 같이 활용할수도 있다고 하는데, mod_fastcgi + php를 시도해보시는 분이 많이 늘어나고 know how도 많이 공유되었으면 좋겠습니다.

온갖 참된 삶은 만남이다 --Martin Buber

정태영의 이미지

wkpark wrote:
모니위키 속도 테스트겸, mod_fastcgi,php+eAccelerator에서 속도가 얼마나 나오나 테스트해보았는데, mod_php보다 안정적인 것 같습니다. php의 경우는 속도향상은 많지는 않지만 분명이 있고요:)

조금 더 찾아보니, perl은 fastcgi로 엄청난 성능향상이 있다고 하는데, php의 경우는 그만큼의 향상을 기대할 수는 없는것 같더군요.

mod_php 를 사용하는 경우라면 그렇게 속도차가 안나는게 정상일 듯 싶은데요 +_+..

perl 의 경우 대부분.. mod_perl 을 사용하는 경우보단 대부분.. 그냥 해당 스크립을 실행시키는 것이기 때문에 fastcgi 모드일 때 fork,exec 에서 생기는 오버헤드가 줄어들기 때문에 훨씬 빨라지는게 아니던가요 :D

mod_php 는 빠르지만 대신 아파치가 커지는 부담이 있겠구요 ;)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

wkpark의 이미지

정태영 wrote:
wkpark wrote:
모니위키 속도 테스트겸, mod_fastcgi,php+eAccelerator에서 속도가 얼마나 나오나 테스트해보았는데, mod_php보다 안정적인 것 같습니다. php의 경우는 속도향상은 많지는 않지만 분명이 있고요:)

조금 더 찾아보니, perl은 fastcgi로 엄청난 성능향상이 있다고 하는데, php의 경우는 그만큼의 향상을 기대할 수는 없는것 같더군요.

mod_php 를 사용하는 경우라면 그렇게 속도차가 안나는게 정상일 듯 싶은데요 +_+..

perl 의 경우 대부분.. mod_perl 을 사용하는 경우보단 대부분.. 그냥 해당 스크립을 실행시키는 것이기 때문에 fastcgi 모드일 때 fork,exec 에서 생기는 오버헤드가 줄어들기 때문에 훨씬 빨라지는게 아니던가요 :D

mod_php 는 빠르지만 대신 아파치가 커지는 부담이 있겠구요 ;)


아.. 제가 언급한 perl은 mod_perl입니다.
perl, python의 경우 mod_perl, mod_python보다 fastcgi를 이용하는것의 성능향상이 더 많다라고 본 것 같습니다.
(엊그제 읽었는데도 출처가 어딘지는 ㅡㅡ;;)
반면 php는 perl이나 python과는 다르게 성능향상을 많이 기대할 수 없다라고 본 듯..

종합해서, 속도면에서는 perl+fastcgi를 따라올것이 없다.. 그런 내용이었습니다.

온갖 참된 삶은 만남이다 --Martin Buber

웃는 남자의 이미지

제가 FastCGI 에 대해 개념이 잡히질 않아서 질문 좀 드리겠습니다.
보아하니 FastCGI 가 PHP,C,Perl,Java 등을 사용가능하다는데..
그럼 FastCGI 는 언어에 독립적인 것 입니까?

그리고 기존 mod_perl 로 운영중인 Perl script 를 mod_fastcgi 환경으로
이주해서 그대로 사용할 수 있는지요?

제가 사용하는 Perl Script 를 짜여진 MovableType 이란 설치형 블로그가 있습니다.
이것을 FastCGI 환경으로 바꾸어서 성능을 향상시키고 싶네요.

----------------------------------------
Nothing left after Nirvana.

atie의 이미지

RisaPapa wrote:
....

그외 자바에서의 FastCGI는 제가 많이 매력을 느끼는 부분입니다. 서블렛 자체가 FastCGI와 같은 원리로 작동하기 때문입니다. 아무튼 시간이 되면 이 자바 버전을 왼성해서 릴리즈하고 싶은 생각입니다.


이 부분에 대한 설명을 부탁드립니다.
JVM에서 다수의 thread이기는 하지만 하나의 Servlet을 통해서 다수의 Request를 처리하는 것이 FASTCGI에서 하나의 Child Process가 다수의 CGI Request를 처리하는 것과 같은 원리라는 뜻인가요?
그리고, 자바 버전을 완성한다는 뜻은 FCGIInterface().FCGIaccept()와 같은 API를 완성한다는 뜻인가요?

----
I paint objects as I think them, not as I see them.
atie's minipage

Necromancer의 이미지

웃는 남자 wrote:
제가 FastCGI 에 대해 개념이 잡히질 않아서 질문 좀 드리겠습니다.
보아하니 FastCGI 가 PHP,C,Perl,Java 등을 사용가능하다는데..
그럼 FastCGI 는 언어에 독립적인 것 입니까?

그렇습니다. 언어 독립적입니다.
간단히 말하자면 http request가 들어올 때마다 매번 실행하고
처리하고 죽는 CGI가 아니라 평상시 떠 있다가 http request를
처리하고 또 계속 대기합니다. 보통 첫번째 request시에 실행되죠.

Written By the Black Knight of Destruction

sh.의 이미지

제가 이해하고 있는것은 이렇습니다.
apache에서 스크립트 언어를 사용할때 mod_X 를 사용하는 것과 cgi를 사용하는 방법이 있다. 그 중 전통적인 cgi를 사용하는 방식은 새로운 프로세스를 생성하는 오버헤드가 많다. mod_X 방식은 apache데몬의 크기가 커지는 단점이 있다. 기존의 cgi가 stdin/out을 사용하는데 반해 fastcgi는 소켓을 통한 자체적 프로토콜을 사용해서 통신하므로 새로운 프로세스가 생성될 필요가 없다.

이런 정도입니다. 따라서 mod_php를 사용할때와 php를 fastcgi로 동작시킬때 속도면의 향상이 미미한것은 이해가 됩니다. 모듈로 동작한다는것 자체가 프로세스 생성에 대한 오버헤드가 없는것이니까요.. http://bbs.kldp.org/viewtopic.php?t=31681에 있는 RisaPapa님의 글을 읽어보더라도 아래와 같은 언급을 하셨네요.

Quote:
저는 PHP도 FastCGI로 사용하는데 이것의 잇점은 한대의 컴퓨터로
운영하기에 부하가 많이 걸릴때 일부 애플리케이션을 외부로 빼내어
분산시키기가 쉬어집니다. 그러면서도 마치 한대에서 운영하는 것처럼
가능하여 쉽게 확장이 가능해지는 점입니다. 퍼포면스 면에서는 아파치
모듈로 운영하는것과 별차이는 없습니다.

다만 해당 글을 좀더 읽어보면 mod_X로 사용할 경우 불펼요한 모듈이 적재되기때문에 메모리 사용량 등에서 불리한데, cgi방식으로 사용할 경우 언어 자체의 수행부분만을 놓고 보면 장점이 많다는 뜻으로 이해됩니다..

사실 제가 가장 궁금한 부분은 "분산"에 관한 부분인데 이건 뭘 어떻게 해야할지 감이 안잡히네요..
그리고 perl등의 예제를 보면 accept등의 fastcgi api를 사용하고, 기존의 스크립트를 while 로 감싸는 등의 몇가지 수정사항이 있는데 php는 이런것들을 어떻게 반영하는것인지 -_- 감을 못잡겠네요...

익명 사용자의 이미지

분산이란게 여러대의 서버에 fastcgi를 올려놓고
아파치에서 적절한 서버로 요청을 보내서 처리하는것을 말씀하시는것 같군요.
(적절한 서버로 요청을 분산하는것에 대해선 자료가 없으니 생략하더라도..)

사이트 규모가 커지면 분산환경은 필수가 되게 마련이죠... :)

익명 사용자의 이미지

아래 사이트에 FastCGI 강좌가 있더군요.

http://www.intertech.co.kr

윈도우 환경에서는 어떻게 하는지 궁금합니다.

울나라에는 너무 자료가 없어요. :cry:

ByB의 이미지

FastCGI의 장점은 그러니까..

1. 요청이 올때마다 새로운 프로세스를 만들지 않는다
2. 분산환경을 제공한다.

라는 것이군요?

그렇다면, 분산환경이 필요없는 상황에서는
매번 새로운 프로세스를 만들지 않아도 된다는 것이 장점이 되겠군요.

FastCGI를 사용하기위해 기존의 CGI에서는 어떤 것들이 변경이 되어야
하는 것인가요?
별도의 Trade-off 가 없는 것인지 궁금하네요. :?

----------------------------------------------------------=>
Be supercalifragilisticexpialidocious, run for your life!

ByB의 이미지

ByB wrote:
FastCGI의 장점은 그러니까..

1. 요청이 올때마다 새로운 프로세스를 만들지 않는다
2. 분산환경을 제공한다.

라는 것이군요?

그렇다면, 분산환경이 필요없는 상황에서는
매번 새로운 프로세스를 만들지 않아도 된다는 것이 장점이 되겠군요.

FastCGI를 사용하기위해 기존의 CGI에서는 어떤 것들이 변경이 되어야
하는 것인가요?
별도의 Trade-off 가 없는 것인지 궁금하네요. :?

추가 질문 :)

C로 만들어진 CGI에는 별도의 잇점이 없는 것은 아닌가요?

----------------------------------------------------------=>
Be supercalifragilisticexpialidocious, run for your life!

sh.의 이미지

c로 작성했을때의 장점은, c바이너리가 다른 언어로 작성한 스크립트보다 실행속도가 빠를거라는거죠..
c의 경우 기존의 소스를 약간 수정하긴 해야되구요
c의 경우는 fastcgi.com 에서 예제를 찾으실수가 있을겁니다..

송효진의 이미지

fastcgi suexec 에 대한 자료를 찾지 못하겠습니다.
뭔가 아파치에 패치를 해야 하는것 같기도 한데,
온전한 링크가 살아있는 정보를 찾지 못했습니다.

아파치2 에서 fastcgi-php 를 suexec 로 구동할 방법을 찾고 싶습니다.

woonuk의 이미지

http://www.t17.ds.pwr.wroc.pl/~misiek/index.php/ApacheModFastcgiPHP
전에 링크를 한번 달았었는데, 패치 다운로드 링크는 좀 바꼈네요.
마침 백업해 두었던 패치를 가지고 있습니다.

ApacheSuEexecPatch

--- suexec.c.org        2003-07-23 23:53:42.000000000 +0200
+++ suexec.c    2004-03-07 22:37:44.310575351 +0100
@@ -280,6 +280,7 @@
     char cwd[AP_MAXPATH];   /* current working directory */
     char dwd[AP_MAXPATH];   /* docroot working directory */
     struct passwd *pw;      /* password entry holder     */
+    struct passwd tpw;
     struct group *gr;       /* group entry holder        */
     struct stat dir_info;   /* directory info holder     */
     struct stat prg_info;   /* program info holder       */
@@ -402,8 +403,14 @@
     }
     else {
         if ((pw = getpwuid(atoi(target_uname))) == NULL) {
+           tpw.pw_name = strdup(target_uname);
+           tpw.pw_uid = atoi(target_uname);
+           tpw.pw_dir = "/tmp";
+           pw = &tpw;
+           if (tpw.pw_uid < 0) {
             log_err("invalid target user id: (%s)\n", target_uname);
             exit(121);
+           }
         }
     }

@@ -583,6 +590,7 @@
      * Error out if the target name/group is different from
      * the name/group of the cwd or the program.
      */
+    /*
     if ((uid != dir_info.st_uid) ||
         (gid != dir_info.st_gid) ||
         (uid != prg_info.st_uid) ||
@@ -594,6 +602,7 @@
                 prg_info.st_uid, prg_info.st_gid);
         exit(120);
     }
+    */
     /*
      * Error out if the program is not executable for the user.
      * Otherwise, she won't find any error in the logs except for

apache-2.0.48 을 기준으로 되어 있지만 2.0.52 버전에서도 사용가능 했습니다.

정태영의 이미지

ByB wrote:
C로 만들어진 CGI에는 별도의 잇점이 없는 것은 아닌가요?

C로 짜여졌다고 해도 fork/exec 의 오버헤드가 줄어들게 되며... 디비 접속 등의 비용이 큰 작업들을 미리 해놓은 상태로 기다릴 수 있기 때문에 상황에 따라서는 충분히 이득을 얻을 수 있을거라고 생각합니다 :)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

송효진의 이미지

woonuk 님의 답변으로 패치는 잘 했습니다.

그런데 무엇을 잘못 했는지 모르겠습니다.
apache2ctl -t 결과는 Ok 입니다.

.php 파일을 php 에 연결하지 못하고 403 Forbidden 이 나옵니다.

그런데 설정이 제대로 되어 php 를 각 사용자 권한으로 실행 가능하게 되더라도,
.html, .jpg 등 suexec 를 거치지 않는것은 여전히 apache 권한이겠지요?

/home/shj 를 700 으로 운영할만한 방법은 아닌것입니까?

	FastCgiWrapper /usr/sbin/suexec2
	FastCgiServer /home/fastcgi-bin/php -user apache -group apache
	AddHandler php5-fastcgi .php
	<Location /fastcgi-bin/php>
		SetHandler fastcgi-script
	</Location>
	Action php5-fastcgi /fastcgi-bin/php
	AddType application/x-httpd-php .php
	AddType application/x-httpd-php-source .phps

	AddDirectoryIndex index.php

<VirtualHost 0.0.0.0:80>
	ServerAdmin webmaster@localhost
	#php_admin_value upload_tmp_dir /home/shj/tmp/
	#php_admin_value session.cookie_domain .bahamut
	#php_admin_value session.save_path /home/shj/tmp/
	#php_admin_value include_path .:/home/shj/common:/usr/share/php5
	#php_admin_value default_charset utf-8
	DocumentRoot /home/shj/public_html/
	ServerName bahamut:80
	ServerPath /home/shj/public_html/
	<Location />
		SetHandler fastcgi-script
	</Location>
	SuexecUserGroup shj users
	<Directory /home/shj/public_html/>
		AllowOverride All
		Options MultiViews -Indexes -Includes FollowSymLinks
		<IfModule mod_access.c>
			Order allow,deny
			Allow from all
		</IfModule>
	</Directory>
</VirtualHost>

/home/fastcgi-bin/php
#!/bin/sh
export PHPRC=/etc/php/cgi-php5/
export PHP_FCGI_CHILDREN=4
exec /usr/bin/php-cgi
plusme의 이미지

fastcgi가 "일반적으로 만들어진" perl-cgi나 c-cgi를 개선할수
있는것은 이해가 갑니다만,,

fastcgi를 java 로 만들어진 cgi 에 적용하는것이 잘이해가 안갑니다.(servlet)

servlet 에서 user의 request를 처리하는 것자체가
servlet의 instance고 이것이 thread 단위로 수행되고
보통 그 thread가 pooling 되거나 하는데..

그리고 이러한 관리 메카니즘 자체가 분산환경을 지원해서
jvm instance를 여러개 만들어서 수행하는 엔진도
있는걸로 압니다.

여기에 fastcgi를 적용함으로써 얻는 이득이 무엇입니까?

woonuk의 이미지

RisaPapa wrote:
현재 PHP사이트에서 사용하고 있는 FastCGI라이브러리는 조금 변경된 라이브러리를 사용하고 있습니다. 가능하면 같은 통일화된 라이브러리로 하자고 양 사이트의 코어 담당자에게 권고를 하고 있지만 FastCGI 사이트측에서는 PHP사이트에서 수정된 코드에 대해서 코미트(commit)를 하지 않는 것 같습니다. 또 PHP에서는 500번의 억세스가 있으면 메모리 리크를 회피하기 위해서 FastCGI 프로세스를 죽이고 다시 리로드하는데 mod_fastcgi측의 프로세스 메니져에서 이것을 처리해 주지 못하는 버그도 아직 내재하고 있습니다. 다시 말해서 기본 디폴트로 3번 프로세스를 리로드하면 mod_fastcgi측의 프로세스 메니져에서 프로그램에 이상이 있는 것으로 인식해 그 이상 PHP의 FastCGI프로세스를 생성해내지 못합니다. 1501번째 리퀘스트부터 응답을 할수 없는 상태가 됩니다.

현재 젠투 리눅스에 httpd-2.0.55, mod_fastcgi-2.4.2, php-4.4.1을 설치해서 다음처럼 간단한 페이지를 30000번 이상 호출해도 이상이 없기에 여쭈어 봅니다.

호출은 cli 용으로 따로 설치한 php의 socket 함수로 호출하고, 결과값에 출력 문자열을 체크해서 카운트 하였습니다.

<?php
print("Powered by FastCGI");
?>

#!/usr/local/php-cgi/bin/php -q
<?
error_reporting(E_ALL);

/**
 * Simple function to replicate PHP 5 behaviour
 */
function microtime_float()
{
   list($usec, $sec) = explode(" ", microtime());
   return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
//$address = gethostbyname('www.example.com');

$address = "192.168.80.18";
$max = 30000;
$success = 0;
$failure = 0;

for($i=0; $i<$max; $i++) {
    /* Create a TCP/IP socket. */
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if ($socket < 0) {
       //echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
    } else {
       //echo "OK.\n";
    }

    $result = socket_connect($socket, $address, $service_port);
    if ($result < 0) {
       echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
    } else {
       //echo "OK.\n";
    }

    $in = "GET /index.php HTTP/1.1\r\n";
    $in .= "Host: $address\r\n";
    $in .= "Connection: Close\r\n\r\n";
    $line = '';
    $out = '';

    socket_write($socket, $in, strlen($in));

    while ($line = socket_read($socket, 2048)) {
       $out .= $line . "\n";
    }
    socket_close($socket);

    if ( preg_match("/^(Powered by FastCGI)/m",$out,$regs) ) {
        $success += 1;
    } else {
        $failure += 1;
    }
    unset($line, $out);
}
print("\n
======= RESULT ========
succes : $success
failur : $failure
=======================\n");
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "$time seconds\n";
?>
김정균의 이미지

음. 오래된 글에 댓글을 달아서 죄송하지만.. 그래도 나중에 fastcgi 검색시에 자료를 쉽게 찾기 위해서 댓글을 달아 놓습니다.

http://zites.net/devel/php-fcgi/

에 fastcgi/suexec 관련 patch 가 좀 있네요. 나중에 참고... :-)

stadia의 이미지

예전에 trac 돌리는데 fastcgi 쓰다가 서버가 죽어나가는 바람에 cgi 로 돌아갔는데요.
더 이상 개발도 없고해서 다들 등 돌리는 분위기인듯 합니다.
쓰레드 처음이 2003년이니 벌써 4년이 지나긴 했네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.