2017/7/11にapache 2.2系のEOLとなるver.2.2.34がreleaseされました。
過去、apache2.2+mod_perlベースのサービス提供していましたが、 apache2.4+mod_perlのbuildを自身では行ったことがない為、メモ。
Apache httpd 2.2.34 Released End-of-Life 2017-07-11
The Apache HTTP Server Project announces the release of version 2.2.34, the final release of the Apache httpd 2.2 series. This version will be the last release of the 2.2 legacy branch. (Version number 2.2.33 was not released.)
The Apache HTTP Server Project has long committed to providing maintenance releases of the 2.2.x flavor through June of 2017, and may continue to publish some security source code patches beyond this date through December of 2017. No further maintenance patches nor releases of 2.2.x are anticipated. Any final security patches will be published to www.apache.org/dist/httpd/patches/apply_to_2.2.34/
Welcome! - The Apache HTTP Server Project
動的module (DSO)でinstall
以前は「安定している」という噂で、apacheとmod_perlをまとめてbuildする 「静的module」でinstallしていましたが、 いつだったか、buildに失敗してからは、動的module (DSO)でinstallしています。
今回もDSOでinstallしますが、静的moduleでのinstall方法は次のurlをご覧下さい。
apacheのinstall
※最近は、aprやapr-utilは、apache本体とは別に配布されています
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.4.27.tar.gz $ tar -xvf httpd-2.4.27.tar.gz $ cd httpd-2.4.27/srclib $ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.6.2.tar.gz $ tar -zxvf apr-1.6.2.tar.gz $ mv apr-1.6.2 apr $ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.6.0.tar.gz $ tar -zxvf apr-util-1.6.0.tar.gz $ mv apr-util-1.6.0 apr-util $ cd .. $ ./configure --prefix=/sing/local/httpd \ --enable-mpms-shared=all \ --enable-proxy \ --enable-modules=all \ --enable-so : configure: summary of build options: Server Version: 2.4.27 Install prefix: /home/endo/local/apache24 C compiler: gcc -std=gnu99 CFLAGS: -g -O2 -pthread LDFLAGS: LIBS: CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE C preprocessor: gcc -E $ make $ make install
mod_perlのinstall
wget http://ftp.jaist.ac.jp/pub/apache/perl/mod_perl-2.0.10.tar.gz tar -zxvf mod_perl-2.0.10.tar.gz cd mod_perl-2.0.10 $ /usr/local/bin/perl Makefile.PL MP_APXS=/home/endo/local/apache24/bin/apxs $ make $ make test : Test Summary Report ------------------- t/apache/read.t (Wstat: 0 Tests: 1 Failed: 1) Failed test: 1 t/filter/in_bbs_inject_header.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 36 tests but ran 0. Files=245, Tests=4679, 130 wallclock secs ( 1.23 usr 0.70 sys + 87.24 cusr 22.99 csys = 112.16 CPU) Result: FAIL Failed 2/245 test programs. 1/4679 subtests failed. [warning] server localhost:8529 shutdown [ error] error running tests (please examine t/logs/error_log) +--------------------------------------------------------+ | Please file a bug report: http://perl.apache.org/bugs/ | +--------------------------------------------------------+ make: *** [run_tests] Error 1 $
t/apache/read.t や t/filter/in_bbs_inject_header.t のtestでfailしましたが、無視しました。 ググると、t/apache/read.t の方は 「for my $string ("POST $location http/1.0",」→「for my $string ("POST $location http/1.0",」 のように修正することでpassしますが、「passさせてよいのやら」という気もします。
$ su # make install
edit httpd.conf & startup.pl
$ vi /home/endo/local/apache24/conf/httpd.conf : LoadModule perl_module modules/mod_perl.so PerlRequire /home/endo/local/apache24/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 SDW::Template; $SDW::Template::ENCODING = 'utf8'; @SDW::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;