<-
Apache > HTTP Server > Documentation > Version 2.4 > How-To / Tutorials

����ġ ���丮��: CGI�� ����� ���� ������ ����

������ ���:  en  |  es  |  fr  |  ja  |  ko 

�� ������ �ֽ��� ������ �ƴմϴ�. �ֱٿ� ����� ������ ���� ������ �����ϼ���.
Support Apache!

����

top

�Ұ�

CGI (Common Gateway Interface)�� �������� ���� CGI ���α׷� Ȥ�� CGI ��ũ��Ʈ��� �θ���, (�������� ������ �����) �ܺ� ���α׷��� ����ϴ� ����� �����Ѵ�. ������Ʈ���� ������ �������� ����� ���� ���ϰ� ������ ����̴�. �� ������ ����ġ �������� CGI�� �����ϴ� ����� �Ұ��ϰ�, CGI ���α׷��� �ۼ��غ���.

top

CGI�� ����ϵ��� ����ġ �����ϱ�

CGI ���α׷��� �ùٷ� �����Ϸ��� CGI ������ �����ϵ��� ����ġ�� �����ؾ� �Ѵ�. �����ϴ� ����� ����������.

ScriptAlias

ScriptAlias ���þ ����ϸ� ����ġ�� Ư�� ���丮�� CGI ���α׷������� �д�. ����ġ�� �� ���丮�� �ִ� ��� ������ CGI ���α׷��̶�� �����Ͽ� Ŭ���̾�Ʈ�� �ڿ��� ��û�ϸ� �ڿ��� �����Ϸ��� �õ��Ѵ�.

ScriptAlias ���þ�� ������ ���� ����Ѵ�.

ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/

�� ������ ����ġ�� �⺻ ��ҿ� ��ġ�� ��� apache2.conf �������Ͽ� �ִ� �����̴�. ScriptAlias ���þ�� Alias ���þ�� ���� URL �պκ��� Ư�� ���丮�� �����Ѵ�. Alias�� ScriptAlias�� ���� DocumentRoot ���丮 �ۿ� �ִ� ���丮�� ����Ѵ�. Alias�� ScriptAlias�� �������� ScriptAlias�� �߰��� URL �պκ����� �����ϴ� ��� ������ CGI ���α׷����� ����ϴ� ���̴�. �׷��� ���� ������ ����ġ���� /cgi-bin/���� �����ϴ� �ڿ��� ��û�ϸ� /usr/local/apache2/cgi-bin/ ���丮���� ã�Ƽ� CGI ���α׷����� ó���϶�� �˸���.

���� ���, URL http://www.example.com/cgi-bin/test.pl�� ��û�ϸ� ����ġ�� /usr/local/apache2/cgi-bin/test.pl ������ �����Ͽ� ����� ��ȯ�Ѵ�. ���� ������ �����ϰ� ���డ���ϸ� � ������ε� ����� �ؾ� �Ѵ�. �׷��� ������ ����ġ�� �������� ������.

ScriptAlias ���丮 �ۿ� �ִ� CGI

���� ���Ȼ� ���������� CGI ���α׷��� ScriptAlias�� ���丮�� �����Ѵ�. �׷��� �����ڴ� ���� CGI ���α׷��� ����� �� �ִ��� ������ ������ �� �ִ�. �׷��� ������ ������ġ�� ���ߴٸ� �ƹ� ���丮������ CGI ���α׷��� �������� ���� ������ ����. ���� ���, UserDir ���þ ����Ͽ� ����ڰ� �ڽ��� Ȩ���丮�� ���������� ������ ��츦 ��������. ����ڰ� �ڽ��� CGI ���α׷��� ����ϰ� ������ cgi-bin ���丮�� ���ٱ����� ���ٸ�, �ٸ� �������� CGI ���α׷��� �����ϰ� ���� ���̴�.

�ƹ� ���丮������ CGI ������ ����Ϸ��� �� ������ �ʿ��ϴ�. ����, AddHandler�� SetHandler ���þ ����Ͽ� cgi-script �ڵ鷯�� �۵��ؾ� �Ѵ�. �ι�°��, Options ���þ ExecCGI�� �����ؾ� �Ѵ�.

Options�� ����Ͽ� ���������� CGI ������ ����ϱ�

������ �ּ������Ͽ� ���� Options ���þ ����Ͽ� Ư�� ���丮���� CGI ������ ����� �� �ִ�.

<Directory /usr/local/apache2/htdocs/somedir>
Options +ExecCGI
</Directory>

�� ���þ�� ����ġ�� CGI ������ ������ ����Ѵ�. � ������ CGI ���������� �������� �˷��� �Ѵ�. ���� AddHandler ���þ�� �������� Ȯ���ڰ� cgi�� pl�� ������ ��� CGI ���α׷��̶�� �˸���.

AddHandler cgi-script .cgi .pl

.htaccess ����

.htaccess ���丮���� apache2.conf�� ���ٱ����� ���� ��쿡 CGI ���α׷��� ����� �� �ִ� ����� �˷��ش�.

����� ���丮

�Ʒ� ������ ����ϸ� ����� ���丮���� .cgi�� ������ ������ CGI ���α׷����� �����Ѵ�.

<Directory /home/*/public_html>
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

������ ����ϸ� ����� ���丮�� cgi-bin �������丮�� �ִ� ��� ������ CGI ���α׷����� �ν��Ѵ�.

<Directory /home/*/public_html/cgi-bin>
Options ExecCGI
SetHandler cgi-script
</Directory>

top

CGI ���α׷� �ۼ��ϱ�

``�Ϲ�����'' ���α׷��ְ� CGI ���α׷��� ���̿��� �ΰ��� �ֵ� �������� �ִ�.

ù��° ���̴� CGI ���α׷��� �ٸ� ����� �ϱ����� ���� MIME-type ����� ����ؾ� �Ѵٴ� ���̴�. HTTP ����� Ŭ���̾�Ʈ���� Ŭ���̾�Ʈ�� � ������ �ްԵ��� �̸� �˸���. ���� ������ ����.

Content-type: text/html

�ι�° ���̴� HTML Ȥ�� �������� ������ �� �ִ� �������� ����ؾ� �Ѵٴ� ���̴�. ��κ��� ��� HTML�� ���������, ������ gif �׸��� ���� HTML�� �ƴ� ������ ����ϴ� CGI ���α׷��� �ۼ��ϴ� ��쵵 �ִ�.

�ΰ����� �����ϰ��� CGI ���α׷� �ۼ��� �̹� ����� ������ �ٸ� ���α׷���� �ſ� ����ϴ�.

ó������ ���� CGI ���α׷�

������ �������� �� ���� ��� CGI ���α׷� ������. �״�� first.pl�̶�� ���Ͽ� �����ϰ�, cgi-bin ���丮�� �����Ѵ�.

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

Perl�� �ͼ����� �ʴ��� ���� ���� �Ͼ���� �� �� �ִ�. ù��° ���� ����ġ(Ȥ�� ����ϴ� ��)���� /usr/bin/perl ��ġ�� �ִ� ������������ ����Ͽ� �� ���α׷� ������ �����϶�� �˸���. �ι�° ���� ��� ���� content-type ������ ����ϰ� carriage-return �ٹٲ��� �ι� ����Ѵ�. �׷��� ��� �ڿ� HTTP ����� ���� ���ϴ� ������ �����, ������ �����Ѵ�. ����° ���� "Hello, World." ���ڿ��� ����Ѵ�. �̰����� ���̴�.

�������� �����ϰ� �ּҸ� �Է��Ѵ�

http://www.example.com/cgi-bin/first.pl

���� ��Ҹ� �Է��ϸ�, ������â�� Hello, World. �� ���� ���δ�. ��е����� ������, �ѹ� �����ϴ� ���� �������� ���� �ٸ� ���� �õ��� �� �� �ִ�.

top

�׷��� ���� �������� �ʾƿ�!

������ CGI ���α׷��� �����Ҷ� �������� ���� �� �ִ� ������ �⺻������ �װ�����.

CGI ���α׷��� ���
����! ��� ���� �� �����Ѵٴ� ���̴�. ����� ��Ȯ������ �������� �ùٷ� ó������ ���Ѵٸ�, CGI ���α׷����� �ùٸ� Content-Type�� �����Ͽ����� Ȯ���Ѵ�.
CGI ���α׷� �ҽ��ڵ� Ȥ�� "POST Method Not Allowed" ����
CGI ���α׷��� �����ϵ��� ����ġ�� ������ �������� �ʾҴٴ� ���̴�. ����ġ �����ϱ� ���� �ٽ� �а� ������ �κ��� �ִ��� ã�ƺ���.
"Forbidden"���� �����ϴ� ����
���� ������ �ִٴ� ���̴�. ����ġ ���� �α��� �Ʒ� ���ϱ��� ���� Ȯ���϶�.
"Internal Server Error"��� ����
����ġ ���� �α��� ���� �Ƹ��� CGI ���α׷��� ����� �������� �Բ� "Premature end of script headers"�� ���� ���̴�. �� ��� �Ʒ� ������� �ϳ��� Ȯ���Ͽ� � ������ CGI ���α׷��� ������ HTTP ����� ������� ���ߴ��� �˾ƺ���.

���ϱ���

������ ��Ű� ������ �������� �������� ������ �����϶�. ��, ������ �����ϸ� ������ ��Ư�� ����� ����(���� nobody�� www)���� �����Ѵ�. �׷��� ����� ������ ������ �����Ϸ��� ������ �ʿ��ϴ�. ���Ͽ� nobody�� �����ϱ⿡ ����� ������ �ֱ����� ���� ��ο��� ������ ���� ������ �ش�.

chmod a+x first.pl

��, ���α׷��� �ٸ� ������ �аų� ���ٸ� �� ���Ͽ��� ������ ������ �ʿ��ϴ�.

��� ������ ȯ��

�����࿡�� ���α׷��� �����ϸ� �ڵ����� � ������ ���� ���޵ȴ�. ���� ���, PATH�� ������ ����� ���� ������ ã�� ��Ҹ� �˷��ش�.

�������� ���α׷��� CGI ���α׷����� �����Ҷ��� PATH�� �ٸ� �� �ִ�. (���� ���, sendmail ����) CGI ���α׷� �ȿ��� �����ϴ� ���ɾ�� ������ ��η� �����ؾ� ���� ���ɾ ã�� �� �ִ�.

��� ������ ������ ���� CGI ���α׷� ù��° �ٿ� ������ ��ũ��Ʈ ���������� (���� perl) ��ο��� ���� �߻��Ѵ�.

#!/usr/bin/perl

������ ������������ ������� Ȯ���Ѵ�.

��, CGI ���α׷��� �ٸ� ȯ�溯���� ����Ѵٸ� ����ġ�� �� �������� ���α׷����� �����ؾ� �Ѵ�.

���α׷� ����

CGI ���α׷��� �����ϴ� ��� ��κ� ���α׷� ��ü ���������̴�. Ư�� ���� �ΰ��� �Ǽ��� ���� �ʾҰ� �� ���� ��� ���� �ִٸ� ������ �׷���. ���� ���������� �����ϱ� ���� �����࿡�� ���α׷��� �����غ���. ���� ���, ������ ���� �����Ѵ�.

cd /usr/local/apache2/cgi-bin
./first.pl

(perl ���������͸� �������� ����. ���� ����ġ�� ��ũ��Ʈ ù��° �ٿ� �ִ� ��� ������ ����Ͽ� ���������͸� ã�ƾ� �Ѵ�.)

���α׷��� ���� ���� Content-Type�� ������ HTTP ������� ����ϰ� �� ���� ����ؾ� �Ѵ�. �ٸ� ���� ����Ѵٸ� ���������� ������ ��� ����ġ�� Premature end of script headers�� ��ȯ�Ѵ�. �ڼ��� ������ ���� CGI ���α׷� �ۼ��ϱ��� �����϶�.

���� �α�

���� �α״� ��� ���̴�. ���� �߸��Ǹ� ���� �α׿� ������ �����. ���� �α׸� ���� ���� ������� �Ѵ�. ������Ʈ�� ȣ�����ϴ� ������ ���� �α׸� ���� ���ϰ� �Ѵٸ�, �Ƹ��� �ٸ� ��ü�� �˾ƺ��� �Ѵ�. ���� �α׸� ���� ����� ������, ��κ��� ������ ���� �ľ��Ͽ� �ذ��� �� �ִ�.

Suexec

suexec ���� ���α׷��� ����ϸ� � ����ȣ��Ʈ Ȥ�� � ����� ���丮�� �ִ����� ���� CGI ���α׷��� �ٸ� ����� �������� ������ �� �ִ�. Suexec�� �ſ� �����ϰ� ������ �˻��ϸ�, �˻縦 �ϳ��� ������� ���ϸ� CGI ���α׷��� �������� �ʰ� Premature end of script headers�� ��ȯ�Ѵ�.

suexec�� ����ϰ� �ִ��� �˷��� apache2ctl -V�� �����Ͽ� SUEXEC_BIN ��ġ�� Ȯ���Ѵ�. ����ġ�� �����Ҷ� �� ��ҿ��� suexec ���������� �߰��ϸ�, suexec�� ����� �� �ִ�.

suexec�� ������ �������� ���ߴٸ� ����ؼ��� �ȵȴ�. suexec�� ������� �������� SUEXEC_BIN ��ġ�� �ִ� suexec ���������� ����� (Ȥ�� ���ϸ��� �ٲٰ�) ������ ������ϸ� �ȴ�. suexec�� ���� ���� ���� �׷��� ����ϰ� �ʹٸ�, suexec -V�� �����Ͽ� suexec �α����� ��ġ�� �˾Ƴ��� �α����Ͽ��� ����� � ��Ģ�� ���� �ִ��� ã�´�.

top

�ڿ����� ���� ���� �������°�?

CGI ���α׷��ֿ� �ͼ��������� �ڿ��� �������� ���� �����ϸ� ������ �ȴ�. ��ü������ �������� ������ ���� ����ϴ� ����� ���ϴ� ���̴�. ���� "Hello, World."�� ����ϴ� ���α׷��� �ۼ��� �� ������ �̷� ���α׷��� ���� ���� ���⶧���̴�.

ȯ�溯��

ȯ�溯���� ����� ��ǻ�͸� ����ϴ� ���� ��� ������ ���ٴϴ� ���̴�. ȯ�溯���� path (��ǻ�Ͱ� ����� �Է��� ���ɾ �ش��ϴ� ���� ������ ã�� ���), ����ڸ�, �͹̳� ������ ���� ������ ������. �Ϲ����� ȯ�溯���� ��� ������ ������ ������Ʈ���� env�� �Է��Ѵ�.

CGI�� �����Ҷ��� ������ �������� ������ ȯ�溯���� ���� ��ȯ�Ѵ�. �� �������� ������ ���� (Netscape, IE, Lynx), ���� ���� (����ġ, IIS, WebSite), �����ϴ� CGI ���α׷��� ���� �ִ�.

CGI ���α׷��Ӵ� �̷� �������� ����� �� �ְ�, ȯ�溯���� Ŭ���̾�Ʈ-���� ��ſ��� �Ϻκ��� �����Ѵ�. ��ü �ʼ� ���� ����� http://hoohoo.ncsa.uiuc.edu/cgi/env.html�� �ִ�.

�Ʒ� ������ Perl CGI ���α׷��� �ڽſ��� ���޵� ��� ȯ�溯���� �����ش�. ����ġ �������� cgi-bin ���丮�� �̿� ����� ���α׷��� �ΰ� �ִ�. ��� ������ �ʼ��̰� �������� �������̴�. �׷��� ���� ��Ͽ� ���� ������ ���δ�. ��, ����ġ�� �⺻������ �����ϴ� ȯ�溯�� �ܿ� �������� ������� ���� ȯ�溯���� �߰��� �� �ִ�.

#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}

STDIN�� STDOUT

��, ������ Ŭ���̾�Ʈ�� ǥ���Է�(STDIN)�� ǥ�����(STDOUT)���� ����Ѵ�. �ϻ����� ��� STDIN�� Ű���峪 ���α׷��� ó���ϴ� ������ ��Ÿ����, STDOUT�� ���� �ܼ��̳� ȭ���� ���Ѵ�.

CGI ���α׷����� �� ���(form)�� POST�ϸ� ��Ŀ� �Է��� �ڷḦ Ư���� �������� ��� CGI ���α׷��� STDIN���� �����Ѵ�. �׷��� ���α׷��� Ű���峪 ���Ͽ��� ���� �ڷḦ ó���ϵ��� �ڷḦ ó���� �� �ִ�.

"Ư���� ����"�� �ſ� �����ϴ�. �׸� �̸��� ���� ��ȣ(=)�� �����ϰ�, �׸� �̸��� ���� �ֵ��� ���� ���ۻ���(&)�� �����Ѵ�. ����, ���ۻ���, ��ȣ ���� ���ڿ������� ���ڴ� ȥ������ �ʵ��� 16������ ��ȯ�Ѵ�. ������ �ڷ� ���ڿ��� ������ ���� �����.

name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey

���� URL �ڿ��� �̷� ���ڿ��� ���� �ȴ�. �� ��� ������ ���ڿ��� QUERY_STRING�̶�� ȯ�溯���� �����Ѵ�. �̸� GET ��û�̶�� �Ѵ�. FORM �±��� METHOD �Ӽ��� �����Ͽ� HTML ���(form)�� �ڷḦ GET���� POST���� �����Ѵ�.

���� ���α׷��� �̷� ���ڿ��� ������ ������ �ɰ��� �Ѵ�. �������� �̷� �ڷ� ó���� ���� CGI ���α׷��� �ٸ� ���� ���� ���Ǵ� ���̺귯���� ������ �ִ�.

top

CGI ���/���̺귯��

CGI ���α׷��� �ۼ��Ҷ� ������ �۾��� ������ִ� �ڵ� ���̺귯�� Ȥ�� ����� ������� �����غ��� �Ѵ�. �̷� ���� ����ϸ� ���װ� �ٰ� �� ���� ���α׷��� ������ �� �ִ�.

Perl�� CGI ���α׷��� �ۼ��Ѵٸ� CPAN���� ���� ������ ã�� �� �ִ�. CGI ���߿� ���� �θ� ���Ǵ� ����� CGI.pm�̴�. ��κ��� ���α׷��� ����� �ּ� ����� ������ CGI::Lite�� ������ �� �� �ִ�.

C�� CGI ���α׷��� �ۼ��Ѵٸ� ������ ������ ����. ���� �ϳ��� http://www.boutell.com/cgic/�� �ִ� CGIC ���̺귯����.

top

�� ���� ����...

���� �ſ� ���� CGI ������ �ִ�. �����׷� comp.infosystems.www.authoring.cgi���� ���� ������ CGI ������ ������ �� �ִ�. HTML Writers Guild�� -servers ���ϸ�����Ʈ�� ������ ���� ���� ã�⿡ �Ǹ��� ��Ҵ�. http://www.hwg.org/lists/hwg-servers/���� �� ���� ���� �� �� �ִ�.

�׸��� ���� CGI ���α׷� ���ۿ� ���� ��� ������ ������ CGI �Ծ��� �о�� ������ �𸥴�. NCSA�� ���� ������ �ְ�, ������ �ʾ��� Common Gateway Interface RFC ������Ʈ�� �ִ�.

���ϸ�����Ʈ�� �����׷쿡 ���� �ݰ� �ִ� CGI ������ ���� �����Ҷ��� �߻��� ����� ���� ����� ���, ������ �߻��� ������ ��� �ٸ���, ����ϴ� ����, CGI ���α׷��� �ۼ��� ���, �����ϸ� �ش� �ڵ带 �ڼ��� �����. �׷��� �ذ�å�� ã�� ��������.

����ġ �ҽ��ڵ尡 �߸��Ǿ��ٰ� Ȯ������ �ʴ� �� CGI ������ ����ġ ���� �����ͺ��̽��� �ø��� ����� �ȵȴ�.

������ ���:  en  |  es  |  fr  |  ja  |  ko 

top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.