FastCGI + GD + APM 설치

intertech의 이미지

다음은 인터테크(http://www.intertech.co.kr)에서 진행중인 FastCGI 강좌중에서
FastCGI 환경 구축에 대한 부분을 발췌한 것입니다.
많은 도움이 되시길 바랍니다.

--------------------------------------------------------------------

제4회 FastCGI + GD + APM 설치

이번 4회차 강좌에서는 FastCGI 인스톨 하는 과정을 살펴보자. 웹에
서 FastCGI 만 사용하는 것은 아니기 때문에 PHP, MYSQL등 필요한 패
키지도 같이 인스톨 할 것이다.

FastCGI라는 말을 들어봤는데 어디서 부터 시작해야 하는지 난감해 하
는 경우가 많다. 필자도 처음 접했을 때 관련 문서들을 찾아서 읽어
봐도 잘 이해가 되지 않았다. 어려운 개념은 아니지만 첫발을 떼기가
힘든 것이다. 인스톨하는 과정이 중요한 것은 아니지만 무엇인가 해
봄으로서 점차 가까이 다가갈 수 있도록 도움이 될 것이다.

FastCGI 환경을 구축하기 위해서는 다음의 두 가지가 필요하다.

1. FastCGI 프로그래밍을 위한 라이브러리
2. 웹서버에서 FastCGI를 인식하기 위한 모듈

첫번째는 FastCGI 프로그래밍 구현을 위한 라이브러리로 fastcgi.com
에 가면 fcgi-2.x.x.tar.gz 라는 압축 파일로 제공하고 있고, 두번째
는 FastCGI 응용프로그램을 웹 서버에서 인식하도록 필요한 파일인데
mod_fastcgi 라는 이름으로 제공하고 있다. 이 모듈을 설치하면 예를
들어 아파치 웹서버에서 .fcgi 확장자를 가진 파일은 FastCGI 응용프
로그램으로 인식한다.

PHP를 인스돌할 때 보면 php 프로그램을 위한 PHP 인터프리터등 핵심
파일들과 웹서버에서 인식하기 위해 모듈을 설치해 주는 것과 마찬가
지이다.

모듈을 정적과 동적으로 설치 할 수 있는 데 본 강좌에서는 정적으로
설치할 것이다. (동적 설치도 어렵지 않을 것이다.)

다음은 인스톨에 필요한 파일과 구할 수 있는 사이트이다.
(참고: 본 강좌를 작성하는 시점에서 최신 버젼임)

apache_1.3.33 : http://ftp.apache-kr.org
php-4.3.11 : http://www.php.net/downloads.php
mysql-4.1.11 : http://dev.mysql.com/downloads/index.html
gd-2.0.33 : http://www.boutell.com/gd
fcgi-2.4.0 : http://www.fastcgi.com/dist
mod_fastcgi-2.4.2 : http://www.fastcgi.com/dist
libiconv-1.9.1 : http://mirrors.kernel.org/gnu/libiconv
ZendOptimizer-2.1.0b-Linux_glibc21-i386:
http://www.zend.com/store/free_download.php?pid=13

임시 디렉토리에 파일을 다운로드 받고 압축을 풀어 놓는다. 필자는
보통 /tmp/apm 디렉토리에 파일을 몰아 놓고 작업을 한다. 컴파일 후
설치될 디렉토리는 /usr/local 디렉토리를 기준으로 한다.

커맨드 라인 상태에서 작업하는 명령을 순서대로 기술하였으며, 중간
중간에 // 으로 설명을 삽입했으니 참고하기 바란다.

1. MYSQL

// MYSQL 압축을 푼 디렉토리로 이동

// 컴파일 및 설치. euckr은 한글지원 옵션
# ./configure --prefix=/usr/local/mysql --with-charset=euckr
# make
# make install

// DB 초기화
# scripts/mysql_install_db

// mysql 소유자 추가
# useradd mysql
# chown -R mysql:mysql /usr/local/mysql

// mysql 스크립트파일 수정
# cp support-files/my-medium.cnf /etc/my.cnf
# vi /usr/local/mysql/share/mysql/mysql.server

$bindir/safe_mysqld --pid-file=$pid_file --datadir=$datadir
--language=korean &
( --language=korean 부분을 추가)

// 리눅스 부팅시 자동 시작 스크립트
# cp -p /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
#ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc3.d/S90mysqld
#ln -s /etc/rc.d/init.d/mysqld /etc/rc.d/rc5.d/S90mysqld

# /etc/rc.d/init.d/mysqld start

2. libiconv

// GD 라이브러리에서 한글지원 때문에 필요.
// GD가 필요 없으면 skip

// libiconv 압축을 푼 디렉토리로 이동

// 컴파일 및 설치.
# ./configure --prefix=/usr/local
# make
# make install

//redhat9.0에서 주의 --------------------------------
# mv /usr/bin/iconv /usr/bin/iconv.bak
# mv /usr/include/iconv.h /usr/include/iconv.h.bak
# mv /usr/sbin/iconvconfig /usr/sbin/iconvconfig.bak
# mkdir /usr/local/bak
# mv /usr/lib/libgd.* /usr/local/bak

Application 컴파일시 아래와 같은 경고가 나오면 iconv.h의 (82라인 정도)
prototype을 수정한다. 두번째 인자 const 를 삭제.

dll.c:1088: warning: passing arg 2 of `libiconv' from incompati
ble pointer type

82 extern size_t iconv (iconv_t cd, const char* * inbuf,
size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
//----------------------------------------------------

3. FastCGI (fcgi-2.4.0)

// fcgi 압축을 푼 디렉토리로 이동

// 컴파일 및 설치.
# ./configure --prefix=/usr/local
# make
# make install

4. mod_fastcgi-2.4.2

// mod_fastcgi 압축을 푼 디렉토리로 이동

// 아파치 모듈로 소스 삽입
# cp -a mod_fastcgi <apache_dir>/src/modules/fastcgi
예) cp -a mod_fastcgi-2.4.2 /tmp/apache_1.3.33/src/modules/fastcgi

5. GD

// Boutell 에서 제공하는 공개용 그래픽 라이브러리

// GD 압축을 푼 디렉토리로 이동
# ./configure --prefix=/usr/local

gd.h 와 gd_io.h파일 수정한다.
#include <stdio.h>를 #include <fcgi/fcgi_stdio.h>로 수정
grep stdio.h *.c 로 검색하여 위와 같이 수정(꽤 많음)

Makefile LIBS에 -lfcgi -liconv 추가
LIBS = -lXpm -lX11 -ljpeg -lfreetype -lpng -lz -lm -lfcgi -liconv

# make
# make install

6. Apache 임시 설정

// Apache 압축을 푼 디렉토리로 이동

# ./configure --prefix=/usr/local/apache

7. PHP 설치

// PHP 압축을 푼 디렉토리로 이동

# ./configure --with-config-file-path=/usr/local/apache/conf \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-apache=../apache_1.3.33 \
--disable-debug \
--enable-track-vars \
--with-zlib-dir=/usr/lib \
--with-gd \
--enable-ftp \
--enable-track-vars \
--enable-magic-quotes \
--with-language=korean \
--enable-safe-mode \
--enable-memory-limit=yes

// 컴파일 및 설치.
# make
# make install

8. Apache 설치

// Apache 압축을 푼 디렉토리로 이동

// 컴파일 및 설치.
# ./configure --prefix=/usr/local/apache \
--activate-module=src/modules/php4/libphp4.a \
--activate-module=src/modules/fastcgi/libfastcgi.a \
--enable-module=so \
--enable-shared=max \
--logfiledir=/var/log/httpd

# make
# make install

// 리눅스 부팅시 자동 시작 스크립트
# cp -p /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apachectl
# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc3.d/S85httpd
# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc5.d/S85httpd
# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc0.d/K15httpd
# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc1.d/K15httpd
# ln -s /etc/rc.d/init.d/apachectl /etc/rc.d/rc6.d/K15httpd
# mkdir /var/log/httpd
# chown nobody:nobody /var/log/httpd

// PHP 설정파일 복사
# cp /tmp/php-4.3.4/php.ini-dist /usr/local/apache/conf/php.ini

9. 환경설정 파일 편집

# vi /usr/local/apache/conf/httpd.conf

DirectoryIndex index.php index.php3 index.html index.htm

// 다음은 PHP와 fcgi 인식을 위해 추가한다.

// <IfModule mod_mime.c> 설정 부분에서 다음 추가.
// 대략 815라인 정도

# And for PHP 4.x, use:
AddType application/x-httpd-php .php .php3 .inc .ph .htm
AddType application/x-httpd-php-source .phps

// 830 라인 부근 AddHandler cgi-script .cgi 찾아서 다음 추가
AddHandler fastcgi-script .fcgi .fpl

// 다음은 FastCGI 인증기를 사용할 때 필요하다.
// 아직은 필요없으니 참고만 한다.
// Authorizer 설치후 인증할 디렉토리를 맞춘다

<Directory "/taxprint/www/webstation">
FastCgiAccessChecker /taxprint/webstation/bin/authorizer
</Directory>

10. Zend Optimizer 설치

// Zend Optimizer 압축을 푼 디렉토리로 이동

# ./install.sh

// 화면 내용에 따라 아파치에 대한 정보등을 입력하면 간단히 끝난다.
// 예) php.ini가 있는 디렉토리 /usr/local/apache/conf 입력

이상으로 FastCGI를 사용하기 위한 환경 구축에 대해 알아 보았는데
APM 인스톨을 제외하면 그리 복잡하지 않다. 그러나 국내에서 APM 환
경을 워낙 많이 사용하기 때문에 같이 알아 보았다. FastCGI 환경 구
축이 아닌 APM 인스톨을 할 때도 도움이 될 것이다.

Forums: 
익명 사용자의 이미지

APM + fastcgi +gd 이렇게 되어있어서 살펴봤는데
모듈은 그냥 static으로 아파치에 넣어버리고 (mod_fastcgi.so를 만드는게 아니라)

php는 --enable-fastcgi 옵션도 넣지 않고 (그냥 일반적인 php를 컴파일하는거랑 같고)

^^;;;;

intertech의 이미지

Anonymous wrote:
APM + fastcgi +gd 이렇게 되어있어서 살펴봤는데
모듈은 그냥 static으로 아파치에 넣어버리고 (mod_fastcgi.so를 만드는게 아니라)

php는 --enable-fastcgi 옵션도 넣지 않고 (그냥 일반적인 php를 컴파일하는거랑 같고)

^^;;;;

C언어 위주로 FastCGI를 다루는 강좌이다 보니 PHP에서 옵션
넣는 부분이 빠졌군요. 차라리 제목에서 APM을 넣지 말 것을
그랬나 봅니다. 죄송..

정태영의 이미지

intertech wrote:
2. libiconv

// GD 라이브러리에서 한글지원 때문에 필요.
// GD가 필요 없으면 skip

// libiconv 압축을 푼 디렉토리로 이동

// 컴파일 및 설치.
# ./configure --prefix=/usr/local
# make
# make install

//redhat9.0에서 주의 --------------------------------
# mv /usr/bin/iconv /usr/bin/iconv.bak
# mv /usr/include/iconv.h /usr/include/iconv.h.bak
# mv /usr/sbin/iconvconfig /usr/sbin/iconvconfig.bak
# mkdir /usr/local/bak
# mv /usr/lib/libgd.* /usr/local/bak

Application 컴파일시 아래와 같은 경고가 나오면 iconv.h의 (82라인 정도)
prototype을 수정한다. 두번째 인자 const 를 삭제.

dll.c:1088: warning: passing arg 2 of `libiconv' from incompati
ble pointer type

82 extern size_t iconv (iconv_t cd, const char* * inbuf,
size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
//----------------------------------------------------

뭐 구지 패키지로 있는 것들을.. 이렇게 컴파일 해서 local 에 설치하시려는지에 대해선 말하지 않기로 하구요 ;)

libiconv 를 따로 설치할 필요는 없을 듯 합니다....

glibc 에는 iconv 가 포함되어 있기 때문에 freebsd 가 아니라면 libiconv 를 사용할 필요가 없습니다..

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

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

nohmad의 이미지

정태영 wrote:
뭐 구지 패키지로 있는 것들을.. 이렇게 컴파일 해서 local 에 설치하시려는지에 대해선 말하지 않기로 하구요 ;)

정태영, I totally agree with your argument. ;-)

이 문서를 작성하신 분께서 상당히 수고하셨다는 것은 분명하지만, 왜 굳이 배포판의 패키징 정책을 거부하면서 이런 일을 하시는지 무척 궁금합니다(사실은 굉장히 오래전부터 궁금했었는데, 이렇게 묻는 것은 처음입니다). 문서를 작성하신 분의 선한 의도와는 달리 이 문서는 상기한 패키지들의 버전이 바뀌면서 옵션이 조금이라도 바뀌면 문제가 생길 수 있습니다. 그렇다고 컴파일할 때마다 모든 옵션을 조사한다는 것도 엄청 피곤한 일입니다.

그런데 놀랍게도 세상에는 이런 수고를 마다하지 않는 분들이 많습니다. 각 배포판들의 패키지 담당자들이죠. 이 사람들은 보통의 일반적인 사용자들보다 해당 패키지에 대해 잘 알고 있고(심지어는 그 패키지를 직접 개발하는 분이 패키징을 담당하는 경우도 많습니다), 배포판의 다른 패키지들과의 연관성도 알아서 해결해줍니다. 자신이 빌드할 패키지의 특별한 옵션이나 환경, 패치 등에 대해 매우 잘 알고 있지 않다면 직접 빌드해봐야 별로 얻을 수 있는 것이 없습니다.

주기적으로 업데이트되는 배포판을 사용하고 배포판의 패키징 정책을 잘 이해하고, 준수하는 것이 리눅스를 비롯한 오픈소스 배포판을 더 잘 사용하는 일이라고 생각합니다.

익명 사용자의 이미지

nohmad wrote:
정태영 wrote:
뭐 구지 패키지로 있는 것들을.. 이렇게 컴파일 해서 local 에 설치하시려는지에 대해선 말하지 않기로 하구요 ;)

정태영, I totally agree with your argument. ;-)

이 문서를 작성하신 분께서 상당히 수고하셨다는 것은 분명하지만, 왜 굳이 배포판의 패키징 정책을 거부하면서 이런 일을 하시는지 무척 궁금합니다(사실은 굉장히 오래전부터 궁금했었는데, 이렇게 묻는 것은 처음입니다). 문서를 작성하신 분의 선한 의도와는 달리 이 문서는 상기한 패키지들의 버전이 바뀌면서 옵션이 조금이라도 바뀌면 문제가 생길 수 있습니다. 그렇다고 컴파일할 때마다 모든 옵션을 조사한다는 것도 엄청 피곤한 일입니다.

그런데 놀랍게도 세상에는 이런 수고를 마다하지 않는 분들이 많습니다. 각 배포판들의 패키지 담당자들이죠. 이 사람들은 보통의 일반적인 사용자들보다 해당 패키지에 대해 잘 알고 있고(심지어는 그 패키지를 직접 개발하는 분이 패키징을 담당하는 경우도 많습니다), 배포판의 다른 패키지들과의 연관성도 알아서 해결해줍니다. 자신이 빌드할 패키지의 특별한 옵션이나 환경, 패치 등에 대해 매우 잘 알고 있지 않다면 직접 빌드해봐야 별로 얻을 수 있는 것이 없습니다.

주기적으로 업데이트되는 배포판을 사용하고 배포판의 패키징 정책을 잘 이해하고, 준수하는 것이 리눅스를 비롯한 오픈소스 배포판을 더 잘 사용하는 일이라고 생각합니다.


삽질을 마다하지 않는다면 장려할 일이지만, 저 역시 직접 make, make install하라는 식으로, 그것도 옵션에 대해 별 설명하지 않은 이런 류의 문서는 이해가 안가더군요. rpmbuild --rebuild 혹은 rpmbuild -bb foobar.spec과 무슨 차이가 있는것인지...
차라리 foobar.spec파일이 더 상세하다고 생각합니다 ^^;;

물론, 이 얘기는 rpm이 매우 잘 패키징되어 있다는 것을 가정하지만요. (경우에 따라서는 자신이 직접 make install 하는것이 나을 경우도 있겠지만, apache나 php등등의 경우는 아닌것같군요)

차라리, configure할 때 기본 옵션으로 무엇을 주어야 하고, 각 옵션에 대하여 설명하는 것으로 설명서를 채우는 것이 낫다고 생각합니다.

intertech의 이미지

먼저 제 글에 이렇게 많은 관심을 가져 주셔서 진심으로 감사드립니다. FastCGI
사용자층이 얼마 되지 않을 것으로 생각했는데 아마도 제목에 APM이 들어가 있어
많은 분들이 조회 하신것 같습니다.

강좌에서 APM을 같이 설치하는 부분을 넣은 것은 첫번째 FastCGI 부분이 배포판
에서는 컴파일이 안되어 있고, 두번째 PHP 보안 버그가 최근 발표되어 업그레이드
를 할 필요를 느꼈고, 세번째 인터넷에 있는 APM설치 방법들이 많이 나와 있는데
강좌를 보는 사람들 중 직접 컴파일 해 보고 싶은 분들의 수고를 덜어 들이기 위
해서 입니다. 동적 모듈 컴파일이나 RPM 업그레이드로 끝낼 수 있으나 말 그대로
강좌를 위한 것이므로 교육적인 측면에서도 직접 컴파일 해보면 도움이 될 것 같다는
생각도 했습니다. 옵션 설명에 대한 부분도 설명이 부실했구요. 포커스가 FastCGI와
C언어 이다 보니 많이 생략해 버린 것 같습니다. 결과는 아무런 도움이 되지
않은 것 같습니다. 그리고 nohmad님이 언급하신 side-effect 에 대해서는 생각하지
못했군요.

저 또한 앞에서 언급하신 것 처럼 되도록 배포판을 이용합니다. 왜냐하면
이런 작업을 직접 해 보신 분들은 아시겠지만 의존성 문제 해결, 노가다성 작업의
귀차니즘등 실제 업무에서 시간을 단축하는 것이 얼마나 효율적입니까.

이런 간단한 설치과정에 대한 글 하나에 대해서도 이렇게 지적을 해 주시니
다음 글 작성시 많은 도움이 되는 것 같습니다.

김정균의 이미지

intertech wrote:

강좌에서 APM을 같이 설치하는 부분을 넣은 것은 첫번째 FastCGI 부분이 배포판
에서는 컴파일이 안되어 있고,

그냥 설치되어 있는 apache 에 apxs 를 사용해서 mod_fastcgi.so 를 생성하게
하는 것이 낳았을 듯 싶습니다. 안그러면 초보자들은 설치되어 있는 apache 를
새로 빌드해야 하는 줄 알 수도 있으니까요.

Quote:

두번째 PHP 보안 버그가 최근 발표되어 업그레이드
를 할 필요를 느꼈고,

설마 배포본에서 php 를 업데이트 안해주겠습니까? 보통 배포본의 버전은 쉽게
올라가지 않습니다. 이유는 의존성 및 안정성을 이유로 삼지요. 그렇다고 해서 보
안버그 버전이라고 패치를 하지는 않습니다. :-)

Quote:

세번째 인터넷에 있는 APM설치 방법들이 많이 나와 있는데
강좌를 보는 사람들 중 직접 컴파일 해 보고 싶은 분들의 수고를 덜어 들이기 위
해서 입니다. 동적 모듈 컴파일이나 RPM 업그레이드로 끝낼 수 있으나 말 그대로
강좌를 위한 것이므로 교육적인 측면에서도 직접 컴파일 해보면 도움이 될 것 같다는
생각도 했습니다. 옵션 설명에 대한 부분도 설명이 부실했구요. 포커스가 FastCGI와
C언어 이다 보니 많이 생략해 버린 것 같습니다. 결과는 아무런 도움이 되지
않은 것 같습니다. 그리고 nohmad님이 언급하신 side-effect 에 대해서는 생각하지
못했군요.

위의 이유로 딴지를 걸기는 하지만 님의 노력이 헛수고라고 생각하지는 않습니다.
다만, make mak insatall 식의 옵션에 대한 설명없는 강좌는 초보자들을 더 미궁
으로 유도하는 식이라고 개인적으로 생각을 합니다.

예를 들어 mysql 의 경우에는 제대로 빌드를 하려면 해 줘야 하는 일이 상당히 많
습니다. 그럼에도 불구하고, 왠만한 강좌들이 모두 mysql source 를 받아서
make/make install 을 하라는 식으로 되어 있어, 초보자들은 당연히 그렇게 해야
하는지 알고, 직접 make / make install 을 해야지 최적화가 된다고 생각하는 오판을
가지게 할 수 있기 때문입니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.