C의 경우 main함수 첫머리에서 거두절미하고 다음을 찍으면 헤더 문제는 해
결됩니다.
printf("Content-type:text/html");
- 마지막에 과 같이 Line Feed를 두번 찍어야만 제대로 됩니다. 이유
요? 이렇게 하라고 표준을 정해버린걸요. 뭐, 시키는 대로 해야되겠지요.
이 문장은 이 다음부터 나오는 모든 내용은 HTML문서이다라고 MIME 타입을
지정하는 것입니다. 이렇게 해서 명시적으로 MIME 타입을 지정하지 않은 상
태에서 다른 내용을 내보내면 위 글과 같이 malformed header운운하는 에러
가 납니다. 이 이야기죠.
"니가 영어로 말하는건지 한국말로 말하는건지 알려주지도 않고 무작정 말
만 할꺼냐?"
컴은 바보라서 MIME타입 없이 나온 내용이 무슨 형태의 문서인지 대충 짐작
으로 찍을 수는 절대로 없습니다. 그래서 그런겁니다. 위의 문장은 이거죠.
"어이, 지금부터 나가는 문서는 HTML문서니까 알아서 잘 해줘!!"
이렇게 하시면 리마크로 막으신다고 했던 부분-에러메세지-도 브라우저에서
그대로 보일 겁니다.
PHP등의 다른 스크립트는 잘 모르겠는데(CGI 프로그램을 C하고 ASP로만 짜
봐서...), 일반 C 프로그램은 위와 같이 MIME 타입을 일일히 지정해 주지 않
으면 절대로 원하는 결과를 얻을 수 없습니다.
: 안녕하세요!
:
: webalizer를 일반적으로 cron에 등록을 해서 사용하더라고요..
:
: 왜 그런지 몰랐는데요, 관련 작업하면서 몇가지 이유가 있다는 사실
:
: 을 알게 되었습니다.
:
: 특히, CGI(c코딩)로 돌릴 경우에 헤더 문제가 발생했습니다.
: (php는 권한 문제로 php소스안에서 webalizer 실행은 불가능
: 했습니다.)
:
: 에러 메세지)
:
: malformed header from script. Bad header=Webalizer V1.30-
: 04 (FreeBSD 3.: /usr/local/apache/htdocs/admin/vweb_alize.cgi
:
: 위와 같은 에러 메시지가 에러 로그파일에 생길 경우에..
:
: 해결책은 webalizer.c 소스 파일에서 몇몇 라인을 주석처리 하고 나
:
: 서 재 컴파일하시면 됩니다.
:
: 그, 주석을 처리해야 될 부분은 webalizer를 콘솔에서 실행시켰을
:
: 때 화면에 출력해 주는 문들을 찾아서 제거하시면 위의 헤더 문
:
: 제는 해결됩니다.
:
: 위의 헤더 문제 제거한 것과, 혹시 webalizer를 설치시 gdImageGif
:
: 함수의 문제로 설치가 안되시는 분 있으시면 이 소스 파일을 받아서
:
: 설치 하시면 됩니다.(패치한 소스를 묶어 둔것입니다.)
:
: gd 버전업으로 인한 webalizer의 패치는 FreeBSD4.0 webalizer 포
:
: 트에 있는 patch를 이용해서 다운 받은 소스 파일에 패치한 것입니다.
:
: http://kt-is.co.kr/~iqzero76/webalizer/webalizer-1.30-04- freebsd.tar.gz
:
: 단)이 프로그램은 FreeBSD3.4,FreeBSD4.0에서 설치해서 사용하고
: 있지만 리눅스에서도 될 것으로 생각됩니다. 회사에 리눅스 시스
: 템이 한대 있지만,테스트를 못해 봤습니다.(업무가 넘 많아서요.
: ㅠ.ㅠ)--리눅스가 편리해질때까지 잘 해보세!
저는 제 아들 경현이와 경찬이, 그리고 아내 태희를 사랑합니다!!(염장!!!)