작은숲:위키노트/Mod perl
(Mod perl에서 넘어옴)
설치
편하고 깔끔한 방법은 Yum으로 설치하는 것이다.
# yum -y install mod_perl
그렇지 못할 경우 수동으로 설치한다. 우선 소스 파일을 다운로드 한다. 다운로드 할 수 있는 버전은 http://perl.apache.org/download/index.html에서 확인한다. 2016년 1월 17일 현재, 최신 버전은 2.0.9이다.
# cd /usr/local/src
# wget http://apache.mirror.cdnetworks.com/perl/mod_perl-2.0.9.tar.gz
--2016-01-27 01:13:48-- http://apache.mirror.cdnetworks.com/perl/mod_perl-2.0.9.tar.gz
Resolving apache.mirror.cdnetworks.com... 14.0.101.165
Connecting to apache.mirror.cdnetworks.com|14.0.101.165|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3846584 (3.7M) [application/x-gzip]
Saving to: `mod_perl-2.0.9.tar.gz'
100%[==========================================================>] 3,846,584 17.9M/s in 0.2s
2016-01-27 01:13:48 (17.9 MB/s) - `mod_perl-2.0.9.tar.gz' saved [3846584/3846584]
# tar zxvf mod_perl-2.0.9.tar.gz
mod_perl-2.0.9/
mod_perl-2.0.9/Apache-Reload/
mod_perl-2.0.9/Apache-Reload/Changes
mod_perl-2.0.9/Apache-Reload/lib/
...
# cd mod_perl-2.0.9
# perl Makefile.PL MP_APXS=/usr/local/apache/bin/apxs
Reading Makefile.PL args from @ARGV
MP_APXS = /usr/local/apache/bin/apxs
no conflicting prior mod_perl version found - good.
Using APXS => /usr/local/apache/bin/apxs
Configuring Apache/2.4.3 mod_perl/2.0.9 Perl/v5.10.1
...
Writing Makefile for ModPerl
Writing Makefile for ModPerl::XS
Writing Makefile for mod_perl2
[warning] mod_perl dso library will be built as mod_perl.so
[warning] You'll need to add the following to httpd.conf:
[warning]
[warning] LoadModule perl_module modules/mod_perl.so
[warning]
[warning] depending on your build, mod_perl might not live in
[warning] the modules/ directory.
[warning] Check the results of
[warning]
[warning] $ /usr/local/apache/bin/apxs -q LIBEXECDIR
[warning]
[warning] and adjust the LoadModule directive accordingly.
# make
cd "src/modules/perl" && make
make[1]: Entering directory `/usr/local/src/mod_perl-2.0.9/src/modules/perl'
...
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/mp2bug
Manifying blib/man3/mod_perl2.3pm
Manifying blib/man3/ModPerl::Config.3pm
Manifying blib/man3/ModPerl::Code.3pm
Manifying blib/man3/ModPerl::CScan.3pm
Manifying blib/man3/Bundle::Apache2.3pm
Manifying blib/man3/Apache2::Build.3pm
# make install
...
Installing /usr/local/share/man/man3/Apache::TestRun.3pm
Installing /usr/local/share/man/man3/Apache2::Module.3pm
Installing /usr/local/bin/mp2bug
Appending installation info to /usr/lib64/perl5/perllocal.pod
+--------------------------------------------------------------+
| |
| For details on getting started with mod_perl 2, see: |
| |
| http://perl.apache.org/docs/2.0/user/intro/start_fast.html |
| |
| |
| Found a bug? File a bug report: |
| |
| http://perl.apache.org/bugs/ |
| |
+--------------------------------------------------------------+
# ls /usr/local/apache/modules/mod_perl.so
/usr/local/apache/modules/mod_perl.so
make와 make install 하는데 시간이 조금 걸리니 잠시 기다린다.
설정
/usr/local/apache/conf/httpd.conf 파일을 수정한다.
# mod_perl 추가
LoadModule perl_module modules/mod_perl.so
# DirectoryIndex 지시자 추가
DirectoryIndex index.html index.php index.pl
# AddHandler 지시자 수정
AddHandler cgi-script .cgi .pl
# Perl 스크립트를 실행할 디렉토리 설정
<Directory /var/www/perl>
# 디렉토리에 있는 모든 파일이 Perl 파일이라면 아래 설정으로
SetHandler perl-script
# 특정 확장자를 가진 파일만 Perl 스크립트로 실행하도록 하려면 윗 줄 주석 처리하고 아래 주석 제거
#AddHandler perl-script .cgi .pl
# PerlRun 모드가 더 안정적이지만, 확실한 스크립트를 조금 더 빠르게 실행시키려면 Registry 모드로
#PerlResponseHandler ModPerl::Registry
PerlResponseHandler ModPerl::PerlRun
PerlOptions +ParseHeaders
Options +ExecCGI
# 만약 접속을 제한해야 한다면 아래 내용 추가
<IfModule mod_authz_core.c>
# Apache 2.4
Require ip 184.0.0.94/24 # 접속할 IP 주소 설정
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order allow,deny
Allow from 184.0.0.94/24 # 접속할 IP 주소 설정
Allow from ::1
</IfModule>
</Directory>
# mod_perl 상태 확인. 필요 없다면 주석 처리.
<Location /perl-status>
SetHandler perl-script
PerlResponseHandler Apache2::Status
Order deny,allow
Deny from all
Allow from 184.0.0.94/24 # 접속할 IP 주소 설정
</Location>
아파치 재기동 후 모듈 확인.
# /usr/local/apache/bin/apachectl restart
# /usr/local/apache/bin/httpd -M | grep perl
perl_module (shared)
참고 자료
- mod_perl 설치
- Getting Your Feet Wet with mod_perl <archiveis>DE2xA</archiveis>
- Use mod_perl <archiveis>wwEJs</archiveis>
- mod_perl