cgi 설치에관한 질문임니다. -cgi 초보 올림-

gon1337의 이미지

cgi 를 쓸려구 하는데요..
unix shell의 결과값을 웹으로 띄울려구 하는데요
짐 제가 돌리구 있는 서버에는 cgi 프로그램이 안깔렸거든요.
여기저기 웹 검색을 해봐도 cgi 공개 프로그램이라던가
그런게 전혀 안보이던데요..
그런 프로그램이 없는건가요. ../cgi-bin 이런디렉토리또한
강제로 만들어야 되나요 아님 설치하면 자동으로 생성되는건가요
고수님들의 조언을 좀 부탁드리겠습니다.
그리고 만약 프로그램이 있다면 있는곳 주소라도 좀 가르쳐 주세요.
읽어 주셔서 감사합니다.

confide의 이미지

웹서버에서 CGI를 지원하는지, 어떠한 CGI를 지원하는지부터 살펴보셔야 하지 않을까 합니다.

------------------
나는 바보

gon1337의 이미지

웹으로 할려면 어떻하나요..

그리고 서버에 어떤프로그램을 설치해야 하나요?

아님 C나 C ++ 같은 프로그램에서 지원해주는 건가요?

confide의 이미지

C/C++ 도 서버에서 허용한다면 가능하지 않던가요

------------------
나는 바보

gon1337의 이미지

여러가지로 테스트해봐도 계속 파일 저장 이런것만 뜨던데요..

그리고 다른 서버의 테스트 파일을 저의 서버에 올려봐도 마찬가지던데..

실행 프로그램이 있어야 하는건 아니지 궁금합니다.

다른곳에 실행되는 것은 /cgi-exe 라는 디렉토리 밑에 있던데 ..

그것과 관련이 있는건 아닌지 궁금합니다. 우선 하는 방법만 알면 잘 풀릴텐데..

허접한 질문에 답해주셔서 감사합니다.

다른 서버의 테스트 파일을 같이 올림니다.

http://chaos.inje.ac.kr/BBS/cgi-ex/calendar.html

이 파일이 html 파일이고

http://chaos.inje.ac.kr/BBS/cgi-ex/cal.cgi

이 파일이 cgi 파일 입니다.

이걸 제 서버에 가지고 와서 해봐도 저장 열기 이런 박스만 뜨던데

프로그램을 설치해야 하는건 아닌지 궁금합니다.

답변 부탁드림니다. 감사합니다.

confide의 이미지

apache 서버를 이용하신다면 AllowCGI인가... 설정이 되어 있어야 할겁니다. 아닌가요???

------------------
나는 바보

oedalpha의 이미지

웹서버 설정을 잘 하셔야 합니다.

파일 저장이 뜨는 이유는 cgi 타입의 파일을 어떻게 다룰 것인지에 대한 설정이 들어있지 않아서 (아마도 주석처리 되어있을 듯) 입니다.

질문하신 분의 웹서버가 무엇인지 잘 모르겠지만, apache 의 경우 설정 파일 중간 쯤에
AddHandler cgi-script .cgi
를 해서 파일 핸들링을 설정하는 것 같습니다.

그 다음에 cgi-bin 이라는 디렉토리에서만 cgi가 돌아가게 한다거나 하는 설정을 입맛에 맞게 바꾸실 필요가 있을 텐데, 그건 다음 문제이니 넘어가도록 하겠습니다. --a

gon1337의 이미지

AddHandler cgi-script .cgi
이 내용이 그대로 설정이 되어 있더군요.

그런데 저장이 뜸니다.
지금 2주일째 삽질중입니다. ㅜ.ㅜ

그리고 cgi-bin 이란 디렉토리가 www 디렉토리 밑에 에서만 가능한건지.

아님 어떤설정으로 가능한건지 답변줌 부탁드리겠습니다.

서버의 설정이 잘못된건지 지금 서버도 다시 밀어 봐도 마찬가지 입니다.

물론 백업으로 복구 했지만요.. 고수님들 부탁드립니다. 좀 갈켜주세요

제가 하려는건 UNIX shell 프로그램으로 작성된 결과물을 웹으로 보려구 하거든요. 이론상으론 아무이상없는데 첨부터 막혀버리니까 지금 어떻게 해야할지 막막할뿐입니다. 답변부탁드립니다. 꾸벅 (ㅡ.ㅡ)(_ _)(ㅡ.ㅡ)

nanosec의 이미지

http://www.apache.kr.net

아파치를 사용하신다면 이곳을 먼저 가보시는것이 좋을것 같습니다.

http://www.apache.kr.net/apache_faq.html

그리고 이곳에 살펴보시면 4번항목에 ScriptAlias 를 이용해 설정하는 방법이 나옵니다. ^^

0x2B | ~0x2B
- Hamlet

alwaysrainy의 이미지

Apache 설정 부터 대강 살펴볼께요.. (conf/httpd.conf)

Quote:
#AddHandler cgi-script .cgi

이 부분의 주석을 제거하면 cgi 파일이 다운로드 되는 현상은 사라질 것이구요..

Quote:
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

이곳에서 Option에 ExecCGI를 추가 ~

Quote:
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI

이렇게 해주면.. 일반 계정에서도 cgi 파일을 돌릴 수가 있게 되죠..
이제 cgi가 돌아갈 환경은 구축되었으니 돌려봐야겠죠.

/$HOME/public_html/cgi-bin 디렉토리를 생성합니다. cgi 파일이 실행되기
위해서는 cgi-bin 디렉토리에 실행 permission이 주어져야겠죠.
705 정도로 주면 될 것 같구.. 적절하게 수정해서 사용하세요 ^^

그럼 이제 Shell에서 명령 하나 실행시키고 그 결과를 파일로 저장했다가
읽어들여 보는 간단한 소스하나 만들어보죠.

cgi-bin 디렉토리 밑에 text 디렉토리 생성 (707 permission)

#include <stdio.h>

int main()
{
  FILE  *fp;
  char  buf[256];

  printf("Content-Type: text/html\r\n\r\n");

  system("echo \"hello world ^^\" > text/hello.txt");
  fp = fopen("text/hello.txt", "r");

  if (fp == NULL)
  {
    ;
  }

  printf("<HTML><BODY>");
  while ( fgets(buf, 256, fp) )
    printf("%s<BR>\n", buf);
  printf("</BODY></HTML>");

  close(fp);

  return 0;
}

gcc test.c -o test.cgi 로 컴파일하시구 웹에서 호출해보세요.

---------------------------------------
세계는 넓고, 할일은 많다.

댓글 달기

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