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

0
points

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

confide의 이미지
1950
points

웹서버에서 CGI를 지원하는지, 어떠한 CGI를 지원하는지부터 살펴보셔야

0
points

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

제가 할려는 거는 웹으로 유닉스의 출력결과를 나타내려고 하거

0
points

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

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

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

confide의 이미지
1950
points

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

0
points

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

답변감사합니다. 그런데 어떻게 해야 할지 하는 ....

0
points

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

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

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

다른곳에 실행되는 것은 /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의 이미지
1950
points

apache 서버를 이용하신다면 AllowCGI인가... 설정이 되어 있

0
points

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

웹서버 설정을 잘 하셔야 합니다.파일 저장이 뜨는 이유는 cgi

0
points

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

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

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

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

답변감사합니다. 아파치 설정화일중 httpd.conf 의 내용을 확인

0
points

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

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

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

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

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

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

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

이곳 참고하세요~

0
points

http://www.apache.kr.net

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

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

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

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

0
points

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

인용:
#AddHandler cgi-script .cgi

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

인용:
<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를 추가 ~

인용:
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 로 컴파일하시구 웹에서 호출해보세요.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.