Perl日記

PerlとかRubyとかPHPとかPythonとか

iMac(Mid 2011)にPerl5.14.1でmod_perl2.0.5を入れたメモ

タイトルのとおり入れてみたので未来の自分用。

$ curl -LO http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz
$ tar zxvf mod_perl-2.0-current.tar.gz
$ cd mod_perl-2.0.5/

apxsを使ってmod_*.soのところに入れてもらう。

$ which apxs
/usr/sbin/apxs
$ perl Makefile.PL MP_APXS=/usr/sbin/apxs
...
...
...
[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/sbin/apxs -q LIBEXECDIR
[warning] 
[warning] and adjust the LoadModule directive accordingly.

ゆわれたとおり、チェックしてみる。

$ /usr/sbin/apxs -q LIBEXECDIR
/usr/libexec/apache2
$ cd /usr/libexec/apache2/
$ ls
mod_actions.so
...

モジュールあるところにちゃんとなってる。

$ make
$ make test
Test Summary Report
-------------------
t/api/err_headers_out.t               (Wstat: 0 Tests: 6 Failed: 3)
  Failed tests:  2-3, 5
t/apache/util.t                       (Wstat: 0 Tests: 8 Failed: 4)
  Failed tests:  1-4
t/filter/out_str_reverse.t            (Wstat: 0 Tests: 2 Failed: 1)
  Failed test:  2
t/api/request_rec.t                   (Wstat: 0 Tests: 55 Failed: 2)
  Failed tests:  13, 38
Files=242, Tests=2637, 92 wallclock secs ( 0.99 usr  0.66 sys + 65.26 cusr 10.57 csys = 77.48 CPU)
Result: FAIL
Failed 4/242 test programs. 10/2637 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

$ vi t/logs/error_log

エラー出ました。
でもテストファイルの中みたらプロキシ関係のようだったので、dolipoあたりが邪魔したのかなーと思ってそのままいれた。

$ sudo make install
...
...
+--------------------------------------------------------------+
|                                                              |
| 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/                               |
|                                                              |
+--------------------------------------------------------------+

httpd.confを編集してロードする。

$ sudo vi /etc/apache2/httpd.conf
...
LoadModule perl_module libexec/apache2/mod_perl.so
...

telnetでHTTPヘッダだけ見てみる。

$ telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 200 OK
Date: Sun, 31 Jul 2011 02:38:26 GMT
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8r DAV/2 PHP/5.3.4 mod_perl/2.0.5 Perl/v5.14.1
Content-Location: index.html.en
Vary: negotiate
TCN: choice
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "14225-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Connection: close
Content-Type: text/html
Content-Language: en
...
...

大丈夫ぽい。


環境確認。

#!/usr/local/perl5/perlbrew/perls/perl-5.14.1/bin/perl
print "Content-type: text/plain\n\n";
foreach my $key (keys(%ENV)) {
  print "$key = $ENV{$key}\n";
}
MOD_PERL = mod_perl/2.0.5

が出てればオッケー。かな。