cgi 관련 아파치 설정 질문입니다..

avimimus의 이미지

아파치 설정에서 각 user들이 public_html 이하의 디렉토리에서
cgi 파일을 사용할 수 있도록 설정해 주었습니다..
그런데 이상한 건, virtualhost를 이용해서 http://userid.domainname/ 으로 접속을 하면 웹에서 cgi가 잘 되는데,
http://domainname/~userid 와 같은 원래의 방식대로 접속을 하면 500 에러가 나면서, 아파치 에러 로그를 보면 premature end of script 라는 에러가 나옵니다..

아파치 버젼은 레드햇 9에 포함되어 있던 http-2.0.40-21.3 이구요..
설정은 다음과 같이 했습니다...
물론 AddHandler cgi-script .cgi .pl 도 해 주었구요..

Quote:

<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit
Options Multiview Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
<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>

~userid 로 접속을 하건, virtual host로 접속을 하건 cgi 실행에는 상관 없지 않나요?? 둘 다 안되면 이해가 가겠는데, virtual host로 접속하는 것만 cgi가 실행되니 참 난감하네요..

무엇이 문제인지 아시는 분, 답변 부탁드리겠습니다..

ruseel의 이미지

"premature end of script"를

Apache FAQ에서 찾아 보면

1. CGI가 잘 못 만들어져 있거나,
2. RLimitCPU and RLimitMEM 설정이 되어 있을 때
사용하는 Resource가 초과되었거나
3. suEXEC, mod_perl, 혹은 다른 third party 모듈 설정이 잘 못 되었을 때

라고 나오는데요.

제 경우에는 며칠전에 suEXEC와 관련된 문제로 고생한 적이 있습니다.

/var/log/httpd/suexec_log에

[2003-07-29 02:21:31]: error: target uid/gid (507/5001) mismatch with directory (507/507) or program (507/5001)

와 비슷한 로그가 남는다면 suEXEC와 관련된 문제입니다.

이럴 때는 실행되는 CGI파일의 owner, group과
public_html디렉토리의 owner, group을 바꿔 주셔야 합니다.

입력한 URL이
http://domainname/~<userid>
라면 <userid>의 owner, initial group으로 바꿔 보십시오.

http://httpd.apache.org/docs/misc/FAQ.html#premature-script-headers

P.S. 음, http://domainname/~<userid>라고 했을 때만 suEXEC가 적용되는 걸까요?

tasy의 이미지

혹시나 해서 하는 말이지만, conf파일에서 계정의 홈페이지설정을 하는 아래와 같은 부분에서 Options 에 ExecCGI를 넣었는지 확인해보시길 바랍니다.

별로 이런 부분의 문제가 아닐 수도 있지만, 혹시 모르니 말이죠..

흠.. VitualHost 로 해도, 어짜피 같은 디렉토리를 쓰니까, 거기서 되고 ~붙이면 안된다는 것이.. --;.. 그건 잘 모르겠네요.

<Directory /home/jaram/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    AuthType Basic
    Options +ExecCGI +MultiViews +Indexes +SymLinksIfOwnerMatch
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Order deny,allow
        Deny from all
    </Limit>
</Directory>

---------
Byeongweon Moon
http://tasy.jaram.org/blog
사랑하면 알게 되고 알면 보이나니 그때에 보이는 것은 전과 같지 않으리라.

avimimus의 이미지

두 분 모두 답변 감사드립니다..
위에 분 말씀대로 문제는 suexec쪽이었습니다..
suexec 가 컴파일 될 당시 minimum gid 값이 default로 500으로 잡혀서
컴파일 되었네요..
그런데 저의 gid가 100 이었으니..
suexec 로그를 살펴보니, forbidden gid라고 나오더라구요..

다른 분들도 혹시 cgi 가 잘 안되실 때는 suexec 관련문제도 꼭 보시기 바랍니다..

댓글 달기

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