end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

install apache2.2 + perl5.18 + mod_perl2.0.9

install perl 5.18

$ wget http://www.cpan.org/src/5.0/perl-5.18.4.tar.gz
$ tar -xvf perl-5.18.4.tar.gz
$ cd perl-5.18.4
$ ./Configure -Dusethreads -Accflags="-fPIC" -de
$ make
$ make test
$ su
# make install

※「-Dusethreads -Accflags="-fPIC"」option are needed by mod_perl.

install apache2.2

$ wget http://ftp.riken.jp/net/apache//httpd/httpd-2.2.31.tar.gz
$ tar -xvf httpd-2.2.31.tar.gz
$ cd httpd-2.2.31
$ ./configure --prefix=/home/endo/local/apache22 \
              --with-mpm=prefork \
              --enable-proxy \
              --enable-modules=all \
              --enable-so
$ make
$ make install

install mod_perl

$ wget http://www.apache.org/dyn/closer.cgi/perl/mod_perl-2.0.9.tar.gz
$ tar -xvf mod_perl-2.0.9.tar.gz
$ cd mod_perl-2.0.9
$ /usr/local/bin/perl Makefile.PL \
          USE_APXS=1 \
          WITH_APXS=/home/endo/local/apache22/bin/apxs \
          EVERYTHING=1
$ make
$ make test
$ su
# make install

edit httpd.conf & startup.pl

$ vi /home/endo/local/apache22/conf/httpd.conf
  :
LoadModule perl_module modules/mod_perl.so
PerlRequire /home/endo/local/apache22/conf/startup.pl

PerlSetEnv XING_CONF     /home/endo/dev/xing/etc/config.yaml

<Directory "/home/endo/dev/xing/app">
    AllowOverride All
    Order allow,deny
    Allow from all

    AuthType BASIC
    AuthUserFile /home/endo/dev/htpasswd
    AuthName "COLINUX MEMBERS"
    require valid-user

    <Files "*.pl">
       Options ExecCGI
       AddHandler cgi-script .pl
       SetHandler perl-script
       PerlHandler ModPerl::Registry
       PerlSendHeader On
    </Files>
</Directory>
Alias /Xing /home/endo/dev/xing/app
$ vi /home/endo/local/apache22/conf/startup.pl
  :
#/usr/local/bin/perl

BEGIN {
    use lib qw(.
               /home/endo/dev/xing/lib
             );
}

use NMW::Template;
$NMW::Template::ENCODING = 'utf8';
@NMW::Template::template_path=('/home/endo/dev/xing/tmpl');

use CGI;
$CGI::LIST_CONTEXT_WARN = 0;

#use Devel::Cover;
#$DEVEL_COVER_OPTIONS='-dir,/home/endo/tmp';

1;