[질문]아파치 컴파일시...

bigdog의 이미지

아파치 웹서버를 컴파일해서 잘 쓰고 있습니다만.
그동안 사용하지 않던 perl스크립트를 사용해야만 할 상황이 발생했습니다.

예전에 컴파일했을 때는 cgi와 perl스크립트는 전혀 고려하지 않은 상태로
컴파일해서 사용했습니다.

다시 컴파일하려고 하니 막상 의문이 생기네요.
mod_cgi 만 enable하면 되는 것인지,
아니면, mod_perl만 enable하면 되는것인지,
둘 다 필요 없는지(이건 아닐거란 생각이 들지만),
둘다 있어야 하는지...
perl스크립트도 cgi에 속하는것으로 알고 있는데, 굳이 mod_perl을 설치해야 할지 ...
경험있으신 분의 조언 부탁드립니다.

File attachments: 
첨부파일 크기
파일 conf.tar50 KB
codebank의 이미지

아파치를 DAO형태로 컴파일 하셨다면 mod_perl만 설치해도 될겁니다.
http://perl.apache.org/
mod_perl의 방식도 mod_php방식과 같은 형태이므로 CGI가 꼭 있어야 하는건
아니라고 생각합니다.

------------------------------
좋은 하루 되세요.

bigdog의 이미지

기존에 컴파일해서 사용하던 apache2에 mod_perl 2.0을 apxs로 설치하는데 성공했습니다.

그리고, httpd.conf에 다음을 추가했습니다.

LoadModule perl_module  modules/mod_perl.so

PerlModule Apache2

Alias /perl/ /export/home/apache2/cgi-bin/
<Location /perl/>
      SetHandler perl-script
      PerlResponseHandler ModPerl::Registry
      PerlOptions +ParseHeaders
      Options +ExecCGI
</Location>


테스트 스크립트를 만들어서 지정된 디렉토리에 넣고 실행하니 잘 됩니다.

문제는 각각의 계정 사용자들인데..

위에서 /export/home/apache2/cgi-bin/ 부분을
/export/home/*/public_html/cgi-bin/이렇게 고치면
전혀 실행이 안되네요.

어떤부분을 바꿔야 할까요?

codebank의 이미지

Apache를 새롭게 설치하면 httpd.conf하나의 파일로 되어있기보다는
apache2.conf와 commonapache2.conf로 나뉘어서 관리하게 되어있는데...
아마 사용하는 배포판에 따라서 다를것이라고 생각합니다.
일단 제가사용하는 Gentoo에서 commonapache2.conf의 perl관련 부분에는

<IfModule mod_alias.c>
    #
    # Note that if you include a trailing / on fakename then the server will
    # require it to be present in the URL.  So "/icons" isn't aliased in this
    # example, only "/icons/"..
    #
    Alias /icons/ /var/www/localhost/icons/
    Alias /doc /usr/share/doc

    #
    # ScriptAlias: This controls which directories contain server scripts.
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the realname directory are treated as applications and
    # run by the server when requested rather than as documents sent to the client.
    # The same rules about trailing "/" apply to ScriptAlias directives as to
    # Alias.
    #
    ScriptAlias /cgi-bin/ /var/www/localhost/cgi-bin/
    ScriptAlias /protected-cgi-bin/ /var/www/localhost/protected-cgi-bin/
    ScriptAliasMatch ^/~([^/]*)/cgi-bin/(.*) /home/$1/public_html/cgi-bin/$2

    <IfModule mod_perl.c>
        #Provide two aliases to the same cgi-bin directory,
        #to see the effects of the 2 different mod_perl modes
        #for Apache::Registry Mode
        Alias /perl/ /var/www/localhost/perl/
        #for Apache::Perlrun Mode
        Alias /cgi-perl/ /var/www/localhost/perl/
    </IfModule>

</IfModule>
...
<IfModule mod_perl.c>
    <Location /perl-status>
        SetHandler perl-script
        <IfDefine MODPERL2>
        PerlResponseHandler Apache::Status
        </IfDefine>
        <IfDefine !MODPERL2>
        PerlResponseHandler ModPerl::Status
        </IfDefine>
        <IfModule mod_access.c>
          Order deny,allow
          Deny from all
          Allow from 127.0.0.1
        </IfModule>
    </Location>
</IfModule>
...
<IfModule mod_perl.c>
    <Directory /home/*/public_html/perl>
        SetHandler perl-script
        PerlResponseHandler ModPerl::PerlRun
        Options -Indexes ExecCGI
        <IfDefine MODPERL2>
          PerlOptions +ParseHeaders
        </IfDefine>
        <IfDefine !MODPERL2>
          PerlSendHeader On
        </IfDefine>
    </Directory>
</IfModule>
...
<IfModule mod_perl.c>
    PerlModule Apache2::ModPerl::Registry
    #set Apache::Registry Mode for /perl Alias
    # To set subdirectories to use perl set the following 
    # and comment the orignial:
    # <Location ~ "^/perl/.*\.pl$">
    <Location  "^/perl/*.pl>
        SetHandler perl-script
        <IfDefine MODPERL2>
        PerlResponseHandler Apache2::ModPerl::Registry
        </IfDefine>
        <IfDefine !MODPERL2>
        PerlResponseHandler ModPerl::Registry
        </IfDefine>
        Options -Indexes ExecCGI
        PerlSendHeader On
    </Location>

    #set Apache::PerlRun Mode for /cgi-perl Alias
    <Location /cgi-perl/*.pl>
        SetHandler perl-script
        PerlResponseHandler ModPerl::PerlRun
        Options -Indexes ExecCGI
        PerlSendHeader On
    </Location>
</IfModule>

라는 부분들이 있더군요.
잘 살펴보시면 해당하는 부분이 있을 것으로 생각됩니다.
참고로 apache2.conf와 commonapache2.conf를 올리겠습니다.
댓글 첨부 파일: 
첨부파일 크기
파일 0바이트

------------------------------
좋은 하루 되세요.

댓글 달기

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